美食类网站开发需求分析,天津 网站优化,著名的网站有哪些,代理项目推荐#x1f308;个人主页#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343#x1f525; 系列专栏#xff1a;http://t.csdnimg.cn/eCa5z 目录 
string类的常用接口说明 
string类对象的常见构造 
编辑 string字符串的遍历#xff08;迭代器#xf…个人主页秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 系列专栏http://t.csdnimg.cn/eCa5z 目录 
string类的常用接口说明 
string类对象的常见构造 
编辑 string字符串的遍历迭代器 
下标加[]operator[] 迭代器iterator(begin、end) 
反向迭代器rbegin、rend 
范围for 容量操作 size、length、max_size、capacity 
shrink_to_fit  
reserve  resize 
at  
修改操作 push_back 
append  operator 
assign  
insert  
erase  
replace  
c_str 
find 
string类非成员函数 
relational operators 
编辑 operator 
getline 
to_string、stod 前言 hello! 各位铁子们大家好哇。              今日更新了string的内容      欢迎大家关注点赞收藏⭐️留言 在使用string类时必须包含#include头文件以及using namespace std; 
string类的常用接口说明 
string类对象的常见构造 第一行是构造一个空字符串。第二行是构造输入的字符串。第三行是拷贝构造。第四行是从下标为5开始的三个字符构造当第三个参数大于末尾下标时或者当第三个参数不写时就会把剩下全部的字符用来构造。 上图中s3是用n个字符c构造。s5是从字符串中用前3个构造。 s0s3是赋值。 string字符串的遍历迭代器 
下标加[]operator[] 在c中字符串后面是有\0的。但是size是不会计算\0的。如上图。  下标加[]的方式不仅可以读取还可以修改。  我们还发现他有两种重载形式this指针不同 如果是const修饰的就不能修改只能读。  迭代器iterator(begin、end) 迭代器iterator是一个类型是定义在string类里面的需要指定类域才能用。end()是最后一个有效字符的下一个位置即‘\0’。begin()是起始位置。他模拟指针的行为但他不是指针因此他也可读可写。 反向迭代器rbegin、rend 当我们的对象是const对象我们要用对应的const的iterator。end也是如此。用const修饰后就不能修改了只能读不能写。如果是反向的就是    string::const_reverse_iterator  范围for 范围for遍历底层其实也是迭代器。写起来会比较简洁。  容量操作 size、length、max_size、capacity size和length是一样的一般使用size。 max_size就是最大的长度实际上没什么意义。capacity就是容量。 capacity实际不包含\0占用的空间的虽然写着15但实际是16。31实际是32。刚开始是两倍的扩后面就是1.5倍的扩。但是扩容机制是不确定的。  clear就是清除数据但是清不清空间是不确定的。  shrink_to_fit  
如果想清理空间就要缩容 缩容会把空间减少到size的大小。清空时最小的大小是16。  reserve  
我们插入数据空间不够会自动扩容。如果想要手动扩容就要用reserve。  如果我们知道大概需要多少空间可以请求空间。这样就不需要频繁的扩容频繁扩容会降低效率。不过我们申请100个它不一定就给100个可能会给更大的空间。如果我们给的比当前的capacity小他就不会生效。只有比当前capacity大才会扩容。 resize resize是改变size的大小。如果改变后的大小比当前小就删除。如果大于当前size小于capacity就插入。如果大于capacity就扩容插入。resize有两个版本如果第二个参数不写就默认插入\0如果写了就插入该字符。 at  at和operator[]的使用基本一样。区别在于越界报错时[]会报断言错误at会报没异常的问题。