string类

1.标准库的string类

构造函数:

string类_第1张图片

构造函数的使用:

string类_第2张图片

string类_第3张图片

析构函数:

string类_第4张图片

编译器会自己进行调用,不用管

拷贝构造函数:

string类_第5张图片

追加字符函数:

string类_第6张图片

string类_第7张图片

追加字符串函数:

string类_第8张图片

string类_第9张图片

运算符重载函数:

+=:

会用之后,会发现追加字符和字符串函数会有些冗余:

都可以用+=来实现:

string类_第10张图片

遍历string:

要用到运算符重载:

string类_第11张图片

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

string类_第12张图片

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

string类_第13张图片

遍历string的另一种方式:

迭代器:

string类_第14张图片

string类_第15张图片

遍历string:

string类_第16张图片

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

string类_第17张图片

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

string类_第18张图片

遍历string的第三种方法:

范围for:

使用auto自动识别类型,进行遍历(其底层是迭代器):

string类_第19张图片

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

string类_第20张图片

string类_第21张图片在使用迭代器调用函数时,上述这种情况会发现类型不匹配

原因:对于const的变量有另外的迭代器供变量使用:

string类_第22张图片

这样就可以编译过去了。

空间:

主要用到的几个函数:

string类_第23张图片

对应的maxsize不同的编译器与系统,对应的值都不同。

上图是vs2013的maxsize

下图是vs2010的maxsize:

string类_第24张图片

下图是vs2022的maxsize:

string类_第25张图片

下图是linux下的maxsize:

string类_第26张图片

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

windows系统:

Vs2010:

string类_第27张图片

Vs2013:

string类_第28张图片

Vs2022:

string类_第29张图片

Linux系统:

string类_第30张图片

string类_第31张图片

reserve:

string类_第32张图片

仅仅是开空间

string类_第33张图片

resize:

string类_第34张图片

开空间+填值初始化

string类_第35张图片

find:

string类_第36张图片

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

string类_第37张图片

rfind:这里是从后向前找,与find的查找方向刚好相反。

字符串最后一个单词的长度:

string类_第38张图片

上述就是getline的作用。

你可能感兴趣的:(c++,开发语言)