1.标准库的string类
构造函数:

构造函数的使用:


析构函数:

编译器会自己进行调用,不用管
拷贝构造函数:

追加字符函数:


追加字符串函数:


运算符重载函数:
+=:
会用之后,会发现追加字符和字符串函数会有些冗余:
都可以用+=来实现:

遍历string:
要用到运算符重载:

遍历方式与c语言的字符串遍历相似:

同时此运算符重载也可以修改string变量:

遍历string的另一种方式:
迭代器:


遍历string:

但是此迭代器的名字比较长,我能可以直接用auto替换,让其自动识别类型:

同时,也可以对string变量进行修改,其对应的方法与指针类似:

遍历string的第三种方法:
范围for:
使用auto自动识别类型,进行遍历(其底层是迭代器):

同时,也可以通过auto&来对string变量进行改:

在使用迭代器调用函数时,上述这种情况会发现类型不匹配
原因:对于const的变量有另外的迭代器供变量使用:

这样就可以编译过去了。
空间:
主要用到的几个函数:

对应的maxsize不同的编译器与系统,对应的值都不同。
上图是vs2013的maxsize
下图是vs2010的maxsize:

下图是vs2022的maxsize:

下图是linux下的maxsize:

同样,capacity不同的系统低下,对应的值也可能不同:
windows系统:
Vs2010:

Vs2013:

Vs2022:

Linux系统:


reserve:

仅仅是开空间

resize:

开空间+填值初始化

find:

用find查找一个网站的协议,域名,资源名

rfind:这里是从后向前找,与find的查找方向刚好相反。
字符串最后一个单词的长度:

上述就是getline



















