第一篇 C++流的奥秘 1
第一章 转向流机制 1
1.1 垂死的标准 3
1.2 新生的流 4
1.3 iostream库 10
1.4 结束语 11
第二章 理解汇、源和iostream类 12
2.1 汇和源 12
2.2 流打结 15
2.3 类 15
2.4 在内存格式化 17
2.5 结束语 20
第三章 调用流成员函数 21
3.1 在iostream类的内部 21
3.2 ios成员函数 22
3.3 ostream成员函数 26
3.4 istream成员函数 27
3.5 流状态 33
3.6 结束语 36
第四章 塑造操纵符 37
4.1 内部操纵符 37
4.2 定制操纵符 43
4.3 结束语 47
第五章 建立可流(Streamable)类 48
5.1 重载流运算符 48
5.2 可流类 52
5.3 多态流 64
5.4 结束语 67
第六章 读写文件流 68
6.1 文件流类 68
6.2 文本文件流 69
6.3 二进制文件流 78
6.4 其它的文件流技术 95
6.5 结束语 99
第二篇 C++数据结构的奥秘 103
第七章 精制函数模板 103
7.1 什么是模板? 103
7.2 函数模板 104
7.3 结束语 117
第八章 定型类模板 118
8.1 回顾模板 118
8.2 类模板 118
8.3 实用类模板 125
8.4 结束语 130
第九章 向量化数组 131
9.1 单下标向量 131
9.2 成品向量类模板 137
9.3 向量存储要求 148
9.4 排序向量模板 151
9.5 结束语 155
第十章 构造字串类 156
10.1 串作为向量 156
10.2 字串包装类 158
10.3 最终的String类 184
10.4 字串和模板 187
10.5 结束语 188
第十一章 实现基本数据结构 189
11.1 基本数据结构 189
11.2 链表类 193
11.3 迭代器(iterator)类 205
11.4 树类 219
11.5 结束语 231
第十二章 开发抽象容器类 232
12.1 介绍容器类 232
12.2 表容器和向量容器 233
12.3 介绍抽象数据类型 243
12.4 数组类型 243
12.5 栈类型 250
12.6 队列类型 258
12.7 双队列类型 262
12.8 集合类型 266
12.9 结束语 273
第三篇 C++内存及数据管理的奥秘 277
第十三章 管理动态内存 277
13.1 动态对象 277
13.2 安全的对象构造 286
13.3 结束语 288
第十四章 重载的new和delete 289
14.1 进入重载 289
14.2 利用new和delete进行调试 299
14.3 标记-释放内存管理 301
14.4 设置new处理器 306
14.5 结束语 310
第十五章 有效地存储对象 312
15.1 对象和指针 312
15.2 对象繁衍 317
15.3 对象和位置语法 325
15.4 可变大小对象 331
15.5 重复对象引用 336
15.6 结束语 346
第十六章 利用稀疏矩阵赢得空间 347
16.1 稀疏数组 347
16.2 稀疏三角矩阵 350
16.3 稀疏直方矩阵 357
16.4 结束语 368
第十七章 保存持久的对象 369
17.1 文件中的对象 369
17.2 持久性的彻底解决 379
17.3 结束语 399
附录A 程序清单编译 400
附录B 磁盘目录 427
附录C 磁盘上的附赠程序 432