随笔分类 - STL基础
摘要:string是非常强大的类型,很好的封装了字符串的操作,有些时候我们可以把string当做字符的容器,string也支持大多数容器操作,下面就列出string类型所支持的所有操作,本文并不是为了讲解string的用法和应用,而是希望作为string类型的参考文档,每个函数皆在注释后有详细说明,需要用时查阅即可。string操作如下:构造函数: string();//空串 string( size_type length, char ch );//以length为长度的ch的拷贝(即length个ch) string( const char *str );//以str为初值 (长度任意) str
阅读全文
摘要:map中存放的是键值对,而set中存放的只是键的集合,所以set中没有mapped_type类型,value_type也是不pair类型,而是与容器中存放元素的类型相同。set的操作与大部分map操作相同,但是不支持下标操作。set提供的操作如下:begin()返回指向第一个元素的迭代器clear()清除所有元素count()返回某个值元素的个数empty()如果集合为空,返回trueend()返回指向最后一个元素的迭代器equal_range()返回集合中与给定值相等的上下限的两个迭代器erase()删除集合中的元素find()返回一个指向被查找到元素的迭代器get_allocator()返
阅读全文
摘要:本程序的功能是对文本中需要转换的单词进行转换。程序需要两个文件,一个文件存放转换单词对照表,另一个文件存放要进行转换的文本。本程序的文本文件内容如下:trans_word_map.txt'em themcuz becausegratz gratefuli Inah nopos supposedsez saidtanx thankswuz wasto_be_trans.txtnah i sez tanx cuz i wuz pos to not cuz i wuz gratz程序设计和思路在程序注释中有说明,不再赘述代码如下:/** 单词转换程序* 命令后带两个参数* 第一个参数表示对照
阅读全文
摘要:map可以理解为之中关联数组,之所以称为关联是因为map是通过键值来访问,而不是通过元素在数组中的位置来访问。map的键类型必须满足严格弱排序,解释一下:1.当键值与自身比较时,一定产生false结果2.两个键不能相互小于,而且如果 k1<k2, k2<k3 那么 k1<k33.如果两个键值相互不小于,则视为相等map定义的类型:map<k, v>::key_type;键的类型map<k, v>::mapped_type;键所关联值的类型map<k, v>::value_type;一个pair类型,pair类型就是包含两个类型的一种模板类型
阅读全文
摘要:STL的顺序容器还有最后两种,这两种都是适配器,分别是queue和priority_queue,这两种容器用法基本相同,所以就放在一块说了。他俩的构造函数形式与stack完全一样,而且都包含在queue头文件中。他们提供的操作如下:queue:back() 返回最后一个元素 empty() 如果队列空则返回真 front() 返回第一个元素 pop() 删除第一个元素 push() 在末尾加入一个元素 size() 返回队列中元素的个数priority_queue:empty() 如果优先队列为空,则返回真 pop() 删除第一个元素 push() 加入一个元素 size() 返回优先队列中拥
阅读全文
摘要:deque是double-ended queue的简称,是一种类似vector的容器,提供随机访问功能,与vector不同的是,deque可以实现在头部和尾部两端插入元素。deque提供的操作和vector很相似,列出如下:Constructors 创建一个新双向队列构造函数有如下原型: deque();//无参 deque( size_type size );//构造n个元素的deque deque( size_type num, const TYPE &val );//构造n个元素初始化为val的deque deque( const deque &from );//初始化为
阅读全文
摘要:先说明一个概念,适配器(adapter),适配器是标准库中的通用概念,包括容器适配器、迭代器适配器、函数适配器。本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制。容器适配器让一种已存在的容器类型以一种不同的抽象类型的工作方式实现。STL提供了三种顺序容器适配器,queue、priority_queue、stack。每一种适配器都定义了两个构造函数,如下:A a;//创建空适配器aA a(c);//用一个容器c初始化适配器a默认的stack和queue都基于deque实现,priority_queue基于vector实现。创建适配器时通过将一个顺序容器指定为适配器的第二个类型实参,可
阅读全文
摘要:list将元素按顺序储存在链表中. 与向量(vector)相比, 它允许快速的插入和删除,但是随机访问却比较慢. list提供如下三种构造函数:list<T> l1;list<T> l2(l1);list<T> l3(b, e);b,e是指定范围的两个迭代器list提供如下的接口函数,具体实现及函数原型请参阅其他帮助文档assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回true end() 返回末尾的迭代器 erase() 删除一
阅读全文
摘要:Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。vector定义了五种构造函数分别是:vector<T> v1;vector<T> v2(v1);vector<T>v3(b, e)vector<T> v4(n, i);vector<T> v5(n);vector包含如下接口函数,如需详细了解,请参阅相关帮助文档Constructors 构造函数 Operators 对ve
阅读全文

浙公网安备 33010602011771号