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