导图 - 第3章 字符串、向量和数组
3.1 命名空间的 using 声明
命名空间的两种 using 声明方式
参考博客:qq_23168063 - c++ primer(三)
头文件中不应该包含using声明:因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件里有某个using声明,那么每个使用了该头文件的文件都会有这个声明。对于某些程序来说,由于不经意间包含了一些名字反而可能产生始料未及的名字冲突。
3.2 标准库类型 string
参考博客:
3.2.1 定义和初始化 string 对象
3.2.2 string 对象上的操作
举例
3.2.3 处理 string对象中的字符
举例
输入 十进制数,转成 十六进制数
3.3 标准库类型 vector
参考博客:
3.3.1 定义和初始化 vector 对象
举例
3.3.2 向 vector 对象中添加元素 & 3.3.3 其他 vector 操作
举例
3.4 迭代器介绍
3.4.1 使用迭代器
迭代器运算符
举例
迭代器类型
iterator 和 const_iterator
迭代器 结合解引用的成员访问
3.4.2 迭代器运算
举例:二分查找(迭代器实现)
3.5 数组
感觉这部分也有很多没懂,尤其是字符串那部分
3.5.1 定义和初始化 内置数组
不存在引用数组
字符数组的特殊性
不允许拷贝和赋值
理解复杂的数组声明
3.5.2 访问数组元素
代码逻辑与功能同 vector 3.3.3;但是数组scores
用内置数组,而非使用vector
容器
数组除了大小固定这一特点以外,其他用法与string
、vector
基本类似
3.5.3 指针和数组
指针也是迭代器
指针运算
解引用和指针运算交互
下标和指针
3.5.4 C风格字符串
上图中直接使用比较运算符比较 C 字符串实际上会比较的是字符串的内存地址,而不是字符串的内容,所以这样的比较没有意义
3.5.5 与旧代码的接口
混用string对象和C风格字符串
使用数组初始化 vector 对象
3.6 多维数组
严格来说,C++没有多维数组
初始化
多维数组的下标引用
指针和多维数组
类型别名 简化多维数组的指针
不断优化,提高可读性