string和vector的基本接口函数

背景: 最近在做OJ,有的题会用到vector和string的接口,为了提高效率,将vector和string的接口都整理出来,本文只对接口进行描述,不做深入探讨。

string:

#include <string>

基本接口:

声明字符串:

1)      string s;                              //生成一个空字符串s
2)      string s(str)                         //拷贝构造函数 生成str的复制品
3)      string s(str,stridx)                 //将字符串str内“始于位置stridx”的部分当作字符串的初值
4)      string s(str,stridx,strlen)        //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
5)      string s(cstr)                        //将C字符串作为s的初值
6)      string s(chars,chars_len)       //将C字符串前chars_len个字符作为字符串s的初值。
7)      string s(num,c)                     //生成一个字符串,包含num个c字符
8)      string s(beg,end)                  //以区间beg;end(不包含end)内的字符作为字符串s的初值

9)      s.~string()                           //销毁所有字符,释放内存

字符串操作:

1) =,assign()                  //赋以新值
2) swap()                      //交换两个字符串的内容
3) +=,append(),push_back()             //在尾部添加字符
4) insert()                 //插入字符
5) erase()                 //删除字符
6) clear()                  //删除全部字符
7) replace()              //替换字符
10) size(),length()     //返回字符数量
11) max_size()          //返回字符的可能最大个数
12) empty()              //判断字符串是否为空
13) capacity()           //返回重新分配之前的字符容量
14) reserve()            //保留一定量内存以容纳一定数量的字符
15) [ ], at()              //存取单一字符
18) copy()               //将某值赋值为一个C_string
19) c_str()               //将内容以C_string返回
20) data()                //将内容以字符数组形式返回
21) substr()             //返回某个子字符串


vector:

#include <vector>

基本接口:

v.begin()//指向迭代器中第一个元素。   
v.end()//指向迭代器中末端元素的下一个,指向一个不存在元素。          
v.push_back(elem)                   //在尾部加入一个数据。  
v.pop_back()                        //删除最后一个数据。  
v.capacity()                        //vector可用空间的大小。  
v.size()                            //返回容器中数据个数。  
v.empty()                           //判断容器是否为空。  
v.front()                           //传回第一个数据。  
v.back()                            //传回最后一个数据,不检查这个数据是否存在。  
v.at(index)                         //传回索引idx所指的数据,如果idx越界,抛出out_of_range。  
v.clear()                           //移除容器中所有数据。  
v.erase(iterator)                   //删除pos位置的数据,传回下一个数据的位置。  
v.erase(begin, end)                  //删除[beg,end)区间的数据,传回下一个数据的位置。注意:begin和end为iterator  
v.insert(position, elem)             //在pos位置插入一个elem拷贝,传回新数据位置。  
v.insert(position, n, elem)           //在pos位置插入n个elem数据,无返回值。  
v.insert(position, begin, end)        //在pos位置插入在[beg,end)区间的数据,无返回值。

v.rbegin()                            //传回一个vector的最后一个数据的指针。  
v.rend()                              // 传回一个vector的第一个数据前一个位置的指针。?  
v.resize(num)                         //重新指定vector的长度。  
v.resize(num, value)                  //重新指定vector的长度。并设定新增的元素的值 
v.reserve()                           //设定capacity的值,如果小于原本的capacity的值则保持为原本的capacity的值。







猜你喜欢

转载自blog.csdn.net/bian_cheng_ru_men/article/details/80453892