STL常用记录:
Vector:向量,可视为长度可变的数组;
1,定义:vector<类型> name,如果类型仍然是vector,则定义方式为:vector<vector<类型>> name
二位数组定义方式:1,vector<vector> name;这个二维数组一维二维都是可以变化长度的;2,vector a[100],这个二维数组行的长度是固定的,只有二维的长度是可以扩充的。
2,vector容器元素访问:
2.1,下标,从0开始
2.2,迭代器:vector<类型>::iterator it = 数组名.begin(),it取的数组首地址,之后用*(it+i)获取元素
.3,vector常用函数:
3.1:push_back(value)--------添加元素
3.2:push_pop()-------删除容器的尾元素
3.3:size()--------获取容器元素个数
3.4:clear()--------清空容器
3.5:insert(it,x)--------像迭代器it处添加元素x
3.6:erase()--------删除单个元素:erase(it),删除迭代器it处的元素
删除一个区间所有元素:erase(容器名.begin(),容器名.end())
vector常用用途:1,存储数据----元素个数不确定的情况下
2,邻接表存储图
set(集合)常用用法:
1,定义:set<类型> name;除开vector和string之外的STL容器都不支持*(it+i)的访问形式,所以只能采用以下方式枚举------判断条件,it != 容器名字.end()。
set元素自动按递增顺序排序,且自动去除重复元素。
2,常用函数:insert(x);
find(value) 返回set中value的迭代器
erase()删除单个元素又两种方法,除了类似于vector中,还有erase(value),vaule为所需要删除的值;删除整个区间,起始位置用find()函数来确定迭代器
size(),clear()
3,set常用用途:
主要用于自动去重并且按照升序排序
String常用方法详解:
1,定义:String name;
2,访问:通过下标或者迭代器(与vector相同)
3,string常用函数:
3.1,operator+=,判断两个字符串是否相等或者相连
3.2 compare operator,两个string类型可以直接用== ,!=,<,<=,>,>=比较大小,比较规则是字典序。
3.3 length()/size()
3.4 insert(),使用方法如下:insert(pos,string),在pos位插入string(从0开始);insert(it,it2,it3),it为原字符串的欲插入位置,it2和it3为待插字符串的收尾迭代器,表示串[it2,it3)将被插在it位置。
3.5 erase();删除单个元素:erase(it),it为需要删除的元素的迭代器;删除一个区间的元素:法1如上,法2:erase(pos,length),pos为需要开始删除的起始位置,length为删除的字符个数。
3.6 clear()
3.7 substr(pos,len),从pos位开始,返回长度为len的子串。
3.8 find(str) 找到str第一次出现的位置,如果没有找到则返回-1
find(str2,pos) 从字符串的pos位开始匹配子串str2
3.9 replace(pos,len,str2) 从pos位开始,将长度为len的子串替换为str2
replace(it1,it2,str2)将字符串的迭代器[it1,it2)的子串替换为str2