第1章 基础知识 1
1.1引言 1
1.2程序 2
1.3函数 4
1.4类型、变量和算术运算 5
1.5作用域和生命周期 9
1.6常量 9
1.7指针、数组和引用 11
1.8测试 14
1.9映射到硬件 16
1.10建议 18
第2章 用户自定义类型 21
2.1引言 21
2.2结构 22
2.3类 23
2.4联合 25
2.5枚举 26
2.6建议 27
第3章 模块化 29
3.1引言 29
3.2分别编译 30
3.3模块(C++20) 32
3.4名字空间 34
3.5错误处理 35
3.6函数参数和返回值 36
3.7建议 46
第4章 类 47
4.1引言 47
4.2具体类型 48
4.3抽象类型 54
4.4虚函数 56
4.5类层次 57
4.6建议 63
第5章 基本操作 65
5.1引言 65
5.2拷贝和移动 68
5.3资源管理 72
5.4常规操作 74
5.5建议 77
第6章 模板 79
6.1引言 79
6.2参数化类型 79
6.3参数化操作 84
6.4模板机制 89
6.5建议 92
第7章 概念与泛型编程 93
7.1引言 93
7.2概念 94
7.3泛型编程 98
7.4可变参数模板 100
7.5模板编译模式 104
7.6建议 104
第8章 标准库概览 107
8.1介绍 107
8.2标准库组件 108
8.3标准库头文件和名字空间 109
8.4建议 110
第9章 字符串和正则表达式 111
9.1介绍 111
9.2字符串 111
9.3字符串视图 114
9.4正则表达式 116
9.5建议 122
第10章 输入输出 123
10.1介绍 123
10.2输出 123
10.3输入 125
10.4 I/O状态 127
10.5用户自定义类型的I/O 128
10.6格式化 129
10.7文件流 130
10.8字符串流 130
10.9 C风格I/O 131
10.10文件系统 132
10.11建议 136
第11章 容器 137
11.1介绍 137
11.2 vector 138
11.3 list 142
11.4 map 144
11.5 unordered_map 144
11.6容器概览 146
11.7建议 148
第12章 算法 149
12.1介绍 149
12.2使用迭代器 150
12.3迭代器类型 153
12.4流迭代器 154
12.5谓词 155
12.6算法概览 156
12.7概念(C++20) 157
12.8容器算法 160
12.9并行算法 161
12.10建议 161
第13章 实用工具 163
13.1引言 163
13.2资源管理 164
13.3范围检查:span 168
13.4特殊容器 170
13.5替代选择 174
13.6分配器 178
13.7时间 179
13.8函数适配 180
13.9类型函数 181
13.10建议 185
第14章 数值 187
14.1引言 187
14.2数学函数 188
14.3数值算法 189
14.4复数 190
14.5随机数 191
14.6向量算术 192
14.7数值限制 193
14.8建议 193
第15章 并发 195
15.1引言 195
15.2任务和thread 196
15.3传递参数 197
15.4返回结果 198
15.5共享数据 199
15.6等待事件 200
15.7任务通信 202
15.8建议 205
第16章 历史和兼容性 207
16.1历史 207
16.2 C++特性演化 214
16.3 C/C++兼容性 218
16.4参考文献 222
16.5建议 225