欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

string和vector的基本接口函数

程序员文章站 2022-03-22 13:37:04
...

背景: 最近在做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的值。