第1章 基础知识 1
1.1 引言 1
1.2 程序 1
1.3 Hello,World! 2
1.4 函数 3
1.5 类型、变量和算术运算 5
1.6 作用域和生命周期 7
1.7 常量 8
1.8 指针、数组和引用 9
1.9 检验 11
1.10 建议 13
第2章 用户自定义类型 15
2.1 引言 15
2.2 结构 15
2.3 类 17
2.4 联合 18
2.5 枚举 19
2.6 建议 20
第3章 模块化 22
3.1 引言 22
3.2 分离编译 23
3.3 命名空间 24
3.4 错误处理 25
3.4.1 异常 26
3.4.2 不变式 27
3.4.3 静态断言 28
3.5 建议 29
第4章 类 30
4.1 引言 30
4.2 具体类型 31
4.2.1 一种算术类型 31
4.2.2 容器 33
4.2.3 初始化容器 34
4.3 抽象类型 36
4.4 虚函数 38
4.5 类层次结构 39
4.5.1 显式覆盖 40
4.5.2 层次结构的益处 41
4.5.3 层次结构漫游 42
4.5.4 避免资源泄漏 43
4.6 拷贝和移动 44
4.6.1 拷贝容器 44
4.6.2 移动容器 45
4.6.3 基本操作 47
4.6.4.资源管理 49
4.6.5 抑制操作 50
4.7 建议 51
第5章 模板 53
5.1 引言 53
5.2 参数化类型 53
5.3 函数模板 55
5.4 概念和泛型编程 56
5.5 函数对象 57
5.6 可变参数模板 59
5.7 别名 60
5.8 模板编译模型 61
5.9 建议 61
第6章 标准库概览 63
6.1 引言 63
6.2 标准库组件 63
6.3 标准库头文件和命名空间 64
6.4 建议 66
第7章 字符串和正则表达式 67
7.1 引言 67
7.2 字符串 67
7.2.1 string的实现 69
7.3 正则表达式 69
7.3.1 搜索 70
7.3.2 正则表达式符号表示 71
7.3.3 迭代器 75
7.4 建议 75
第8章 I/O流 77
8.1 引言 77
8.2 输出 78
8.3 输入 79
8.4 I/O状态 80
8.5 用户自定义类型的I/O 81
8.6 格式化 82
8.7 文件流 83
8.8 字符串流 83
8.9 建议 84
第9章 容器 86
9.1 引言 86
9.2 vector 86
9.2.1 元素 89
9.2.2 范围检查 89
9.3 list 90
9.4 map 91
9.5 unorder_map 92
9.6 容器概述 93
9.7 建议 94
第10章 算法 96
10.1 引言 96
10.2 使用迭代器 97
10.3 迭代器类型 99
10.4 流迭代器 100
10.5 谓词 102
10.6 标准库算法概览 102
10.7 容器算法 103
10.8 建议 104
第11章 实用工具 105
11.1 引言 105
11.2 资源管理 105
11.2.1 unique_ptr和shared_ptr 106
11.3 特殊容器 108
11.3.1 array 109
11.3.2 bitset 111
11.3.3 pair和tuple 111
11.4 时间 113
11.5 函数适配器 113
11.5.1 bind() 113
11.5.2 mem_fn() 114
11.5.3 function 114
11.6 类型函数 115
11.6.1 iterator_traits 116
11.6.2 类型谓词 117
11.7 建议 118
第12章 数值计算 119
12.1 引言 119
12.2 数学函数 119
12.3 数值算法 120
12.4 复数 121
12.5 随机数 121
12.6 向量算术 123
12.7 数值限制 124
12.8 建议 124
第13章 并发 125
13.1 引言 125
13.2 任务和thread 126
13.3 传递参数 126
13.4 返回结果 127
13.5 共享数据 128
13.6 等待事件 129
13.7 任务通信 130
13.7.1 future和promise 131
13.7.2 packaged_task 132
13.7.3 async() 133
13.8 建议 133
第14章 历史和兼容性 135
14.1 历史 135
14.1.1 大事年表 136
14.1.2 早期的C++ 137
14.1.3 ISO C++标准 139
14.2 C++11扩展 140
14.2.1 语言特性 140
14.2.2 标准库组件 141
14.2.3 已弃用特性 142
14.2.4 类型转换 143
14.3 C/C++兼容性 143
14.3.1 C和C++是兄弟 144
14.3.2 兼容性问题 145
14.4 参考文献 147
14.5 建议 149
索引 151