主要有:vector , algorithm
容器 ,可以存储基本数据类型,也可以存储指针,类
vector<int> v1 , v1.push_back(1) v1.push_back(1) v1.push_back(1) 把 1.2.3 存储进容器。
vector<int>::iterator it = v1.begin();定义一个迭代器(一个指针)。 可以使用 it++ ,从v1.begin() 到v1.end()遍历该容器。
序列式容器:vector . deque. list 元素位置取决于插入时机
关联式容器: set multiset map multimap 元素位置取决于特定的排序准则,和插入顺序无关。
string 类的初始化:
string s1 = "aaaaa" ;
string s2("bbbbbb");
string s3 = s1 ;
string s4(10,'a') 初始化为10个a
string 类的遍历:
<1> 数组方式, for( int i =0 ; i< s1.length() ; i++)
<2> 迭代器 , for( string::iterator it = s1.begin(); it != s1.end(); it++)
string中去字符 :
<1> [] 越界会终止
<2> s1.at(1) ,越界会抛出异常。
string转化为 char * ,即内存首地址。 s1.c_str() ;
将string中的内容拷贝到某一内存空间中。char buff[128] ; s1.copy( buff, 3 ,0 ) 从第一个字符开始拷贝。索引从0开始。
字符串连接
string s1="aaaa" ; string s2 ="bbbb" ;
<1> s1 = s1+s2 ;
<2> s1.append(s2) ;
字符串查找或字符查找:
s1.find("str1",0) ,从索引0开始查找,返回地第一次出现的索引。
字符串替换:
s1.replace(pos, n , "str1") 从索引pos开始删除n个字符,并插入str1
字符串删除:
string::iterator it = find(s1.begin() , s1.end() , 'a' )
if ( it != s1.end() ) s1.erase(it) , 删除第一个a 。
字符串插入:
s1.insert(pos , "str2") ;
transform(s1.begin(), s1.end(), s1.begin(), function ) 将s1从头到尾进行function转化,并存入s1.begin .