1.size和capacity函数
其实String就是字符串,也类似于字符数组,size()函数表示实际存储元素个数,capacity()表示这个字符串开辟的空间,一般来说,size()用的比较多(类似于strlen函数,遇到'\0'停止读取并计数)
2.reserve函数
reserve负责开辟空间,以字节为单位,开辟 指定大小 n 空间,系统会按照自带扩容机制进行扩容,如1.5倍或者2倍扩容,根据编译器差异,如下:
但值得注意的是,当 n 小于 capacity 时,reserve语句不会被执行。如下:
所以reserve()函数只负责扩容不负责缩容。
3.resize函数
resize 改变 string 长度, 若 n > size ,则填充 空字符,使得 size() 变成指定大小,当然也可以传入参数 char c ,使得默认填充字符 c 来代替空字符。当然 resize 还可以进行缩小size操作。
(1) resize < size ,进行 删除 操作,例如:
(2)当 size < n < capacity , 进行 插入 操作,在s后添加指定字符,将 size 改变
(3) n > capacity 进行 扩容+插入 操作,系统会自动扩容然后填充字符,如下:
4.push_back函数和 append函数
push_back函数:在字符串后追加 字符 c ,类似于尾插操作。
append函数: 在字符串后追加 字符串
这两个函数用的少之又少,所以对这两个函数不进行多的论述,因为还有一个更加全能也更加好用的操作,请见下文。
5.+=操作
+=操作是系统自带的运算符操作,它可以完美代替 push_back 函数 和 append 函数进行插入操作,而且能够覆盖范围比较大,操作简单,请见下图:
无论是string类型、char类型、char*类型,+=操作符一网打尽!!!
6. assign 、 insert 、 erase 、replace 函数
assign函数: 在 s 上进行覆盖操作, 将原有string 内容全部删除,再用 char* 类型进行覆盖
insert函数: 在指定位置插入字符或者是字符串
erase函数: 从指定位置,可进行指定长度的删除操作
replace函数: 可以指定位置,指定长度,指定修改内容进行修改。
这一类函数涉及到空间的挪动,而且效率很低,不建议使用。这里只是简单提一句。
7.find函数
通常用于在字符串或数组中查找特定元素或子字符串,并返回其位置或索引就是下标,如果没有找到匹配的字符,则返回 std::string::npos。
8.substr 函数
通常用于从字符串中提取子字符串。如果不提供count参数,则采用缺省参数默认返回从pos开始到字符串末尾的所有字符。
okok博客结束,本来还有的,不想写了,累死了,下篇博客见!!!!!!!!!!