string
- 一string的基本用法
- 二.迭代器
- 1.基本使用
- 2.语法糖
- 3.反向迭代器
- 4.const迭代器
- 三.容量
- 四.插入和删除
- 五.一个例题:解析协议
- 六.读取空格
- 七.一些其他函数
一string的基本用法
文档里
一般使用
二.迭代器
1.基本使用
string里重载了一种非常厉害的运算符[ ]
这个运算符本质上是解引用,是数组用来访问数据的运算符。所以我们可以用这个运算符对每个字符进行操作。补充个小知识:string是一个类,类里有许多的成员函数,这些成员函数下面会讲,这里先用一个size,代表字符串的长度。
访问每个字符
迭代器
2.语法糖
这里的原理是,把s2的每一个字符复制到ch里,auto自动推演ch的类型。因为ch是复制的值,所以下面改变ch并不会改变s2,如果需要改变,我们得用&
这里看起来是一个范围for,实际上底层依然是迭代器。
3.反向迭代器
4.const迭代器
这里实际上是一个权限放大的问题,const对象也应当调用const迭代器。
**
补充一下:为什么const修饰,it却能++呢?知识因为const修饰的实际上*it,而不是it。
三.容量
我们可以看到它有一个capacity函数,就是容量,如果容量不够它就会自动扩容,不同的编译器扩容的大小是不一样的,在vs2019里每次扩容1.5倍。很明显这样扩容的代价是很大的,很容易就没空间了,所以它又提供了一个reserve函数。
上面还有一个resize函数,resize和reserve的区别是:resize是开空间+初始化(默认是\0),reserve是单纯的开空间。
四.插入和删除
插入
删除
谨慎使用insert和erase,插入和删除效率很低,能避免就避免。
五.一个例题:解析协议
find函数
substr函数
六.读取空格
字符串在使用cin读取时遇到空格就会自动停止,使用这个函数就可以读取空格,并且可以自由控制。
七.一些其他函数
字符串转整形
字符串转double
其他转字符串