第三章 字符串、向量、数组
1、size_t表示无符号整数,为unsigned类型。
- 它可以表示的正数范围是int的两倍。
- 当确定该变量的值一定大于等于0时,选用size_t类型而不用int类型。
- 在for循环中使用size_t
使用size_t有很多好处,这里贴一个专门介绍这些好处的文章:
为什么size_t重要
2、无符号数和有符号数的运算问题
无符号数和有符号数进行运算时,有符号数会被转换为无符号数。所以就要注意下面的问题:
3、cin读入字符串时,会忽略打头的空白部分
4、字符串相加时需要注意的问题
确保每个加法运算符的两侧的运算对象至少有一个是string
5、处理字符的函数库
3.4 迭代器
1、迭代器begin和end
begin指向第一个元素,end指向最后一个元素的后一位
2、遍历时容器时不用"<“而用”!= end"
3、迭代器的箭头运算符
4、使迭代器失效的两个操作
- 范围for循环中向vector对象添加元素
- 任何一种改变vector对象容量的操作
3.5 数组
1、当不清楚元素的确切个数时,选用vector。
2、数组初始化的维度在编译时应该是已知的,所以维度必须是常量表达式(这里我吃过很多次亏)
3、数组不允许拷贝和赋值
4、理解数组声明的含义:从内往外,从右往左
5、遍历数组尽量使用范围for循环语句
6、获取数组迭代器的函数:begin函数和end函数
注意使用前需要包含头文件iterator
7、c风格的字符串
- string类含有一个类内成员变量c_str,这保存了c风格字符数组。
- c风格字符串的函数
建议尽量不要使用c风格的字符串