目录 1
前言 1
第0章 开始学习C++ 1
0.1 注释 1
0.2 #include指令 2
0.3 主函数main 2
0.4 花括号 2
0.5 使用标准库进行输出 3
0.6 返回语句 3
0.7 一些较为深入的观察 4
0.8 小结 5
第1章 使用字符串 8
1.1 输入 8
1.2 为姓名装框 10
1.3 小结 14
第2章 循环和计数 17
2.1 问题 17
2.2 程序的整体结构 18
2.3 输出数目未知的行 18
2.4 输出一行 22
2.5 完整的框架程序 27
2.6 计数 31
2.7 小结 32
第3章 使用批量数据 36
3.1 计算学生成绩 36
3.2 用中值代替平均值 42
3.3 小结 50
第4章 组织程序和数据 52
4.1 组织计算 52
4.2 组织数据 63
4.3 把各部分代码连接到一起 68
4.4 把计算成绩的程序分块 71
4.5 修正后的计算成绩的程序 73
4.6 小结 75
第5章 使用顺序容器并分析字符串 78
5.1 按类别来区分学生 78
5.2 迭代器 82
5.3 用迭代器来代替索引 86
5.4 重新思考数据结构以实现更好的性能 87
5.5 list类型 88
5.6 分割字符串 91
5.7 测试split函数 94
5.8 连接字符串 95
5.9 小结 100
6.1 分析字符串 105
第6章 使用库算法 105
6.2 对计算成绩的方案进行比较 114
6.3 对学生进行分类并回顾一下我们的问题 122
6.4 算法、容器以及迭代器 125
6.5 小结 126
第7章 使用关联容器 128
7.1 支持高效查找的容器 128
7.2 计算单词数 129
7.3 产生一个交叉引用表 131
7.4 生成句子 135
7.5 关于性能的一点说明 142
7.6 小结 143
第8章 编写泛型函数 146
8.1 泛型函数是什么? 146
8.2 数据结构独立性 150
8.3 输入输出迭代器 158
8.4 用达代器来提高适应性 159
8.5 小结 161
第9章 定义新类型 163
9.1 回顾一下Student_info 163
9.2 自定义类型 164
9.3 保护 167
9.4 Student_info类 171
9.5 构造函数 172
9.6 使用Student_info类 175
9.7 小结 176
第10章 管理内存和低级数据结构 178
10.1 指针与数组 178
10.2 再看字符串常量 185
10.3 初始化字符串指针数组 186
10.4 main函数的参数 188
10.5 文件读写 189
10.6 三种内存分配方法 192
10.7 小结 195
第11章 定义抽象数据类型 197
11.1 Vec类 197
11.2 实现Vec类 198
11.3 复制控制 205
11.4 动态的Vec类型对象 213
11.5 灵活的内存管理 214
11.6 小结 220
第12章 使类对象像一个数值一样工作 222
12.1 一个简单的string类 222
12.2 自动转换 224
12.3 Str操作 225
12.4 有些转换是危险的 232
12.5 类型转换操作函数 233
12.6 类型转换与内存管理 235
12.7 小结 237
第13章 使用继承与动态绑定 239
13.1 一个简单的string类 239
13.2 多态和虚拟函数 244
13.3 用继承来解决我们的问题 249
13.4 一个简单的句柄类 255
13.5 使用句柄类 260
13.6 微妙之处 262
13.7 小结 263
第14章 近乎自动地管理内存 267
14.1 用来复制对象的句柄 268
14.2 引用计数句柄 274
14.3 可以让你决定什么时候共享数据的句柄 277
14.4 可控句柄的一个改进 279
14.5 小结 283
15.1 设计 284
第15章 再探字符图形 284
15.2 实现 293
15.3 小结 303
第16章 今后如何学习C++ 306
16.1 好好地利用你已经掌握的知识 306
16.2 学习更多的东西 308
附录A C++语法细节 310
A.1 声明 310
A.2 类型 315
A.3 表达式 321
A.4 语句 324
附录B 标准库一览 327
B.1 输入-输出 327
B.2 容器和迭代器 329
B.3 算法 337