string容器
c++在STL中加入了string类型,对字符串常用的功能进行了封装,使操作起来更方便,不必担心内存是否足够、字符串的长度等问题。
用string的时候需要:
1.#include
2.using namespace std
定义string的方法:
string name;
//name是字符串变量的名字
可以在定义字符串的同时进行初始化
例如:string str=“abcd”;
1.string的访问:
(1)像普通数组一样操作
若整体输入输出
(2)通过迭代器访问
迭代器定义方法:
string::iterator it;
2.string的运算
加法运算:加法运算时,左右操作数必须要有一个string类型
关系运算:按照字典序比较
3.string常用函数
(1).length() .size()
返回字符串的长度,时间复杂度o(1)
(2).clear()
清空所有元素 时间复杂度o(1)
(3).substr() substr(pos,len) 返回从pos号位置开始,长度为len的子串 时间复杂度为o(n)
(4).insert() 时间复杂度为o(n)
- insert(pos,string) 在pos号位置插入字符串string
- insert(it1,it2,it3) it1为原字符串欲插入位置,it2,it3为待插入字符串首尾迭代器(左闭右开区间)
(5).erase() 时间复杂度 o(n)
erase(it) 删除it处的元素 it为欲删除位置的迭代器
erase(first,last) 删除first 到 last区间的元素 first last [first,last)
erase(pos,length) 删除从pos号开始,length个元素
(6).find() 时间复杂度o(n*m)
函数返回要查询的串在母串中第一次出现的位置,若母串中没有查询到子串,返回string::npos 其本身值为-1,也可以认为是unsigned int的最大值 4294967295
(7).replace() - s1.replace(pos,len,s2)把s1从pos位置开始长为len的子串替换为s2
- s1.replace(it1,it2,s2) 把s1的迭代器it1,it2范围内(左闭右开)的子串替换为s2
//当然还有其他很多 这些只是常用的