string的概念

可以用来存放字符串,操作方便

string的基本操作

头文件#include<string>

String s;定义一个string;

初始化 string s=”abc”;定义的时候直接赋值;

Cin>>string;输入一个字符串,以空格、tab、换行结束;

getline(cin,s);输入一个字符串,以回车结束,可以包含空格;

getline(cin,s,’c’);输入一个字符串,遇到字符’c’才结束输入,可输入空格.tab、回车

string s1,s1; s1+=s2;或者s1+=”abc”;可以直接进行拼接操作;

两个string类型可以直接使用==、!=、<、>、<=、>=比较大小,比较规则按字典序

s.size()/lenth();获取string的长度;

s.clear();清空string;

s1.swap(s2);交换s1,s2;

s.empty() ;判断字符串是否为空

string s(num,’c’) 生成一个字符串,包含num个c字符

s=str;将s清空后,把str赋值给s;

string s(str);定义s,并将str赋值给s;

string可直接使用sort(可自写函数定义排序规则),reverse进行排序和颠倒

不常用操作:

s.substr(pos,len);返回pos位开始、长度为len的字符串。O(N)

s.replace(pos,len,str);把str从pos下标开始,把长度为len的子串替换为str。

string的插入O(N):

string的插入函数的参数不仅可以是迭代器还可以是坐标。

s.insert(pos,string);在pos位插入字符串string。

s.insert(it,it2,it3);在it位置插入迭代器it2~it3的元素;

string元素的删除O(N):

删除通用可以用下标可迭代器两种方式。

s.erase(it);删除一个元素;

s.erase(it1,it2);删除区间内元素

s.erase(pos,lenth);从pos下标开始,删除长度为lenth的元素;

string的查找O(nm)nm为两串的长度:

s.find(s2);当s2是s的子串时,返回第一次出现的下标,如果不是,返回-1;

s.find(s2,pos);从s的pos下标开始查找s2;

s.rfind();从反方向开始查找