目 录 1
第一章C++发展史 1
1.1 C++的起源 1
1.2从函数到对象 1
1.3基本概念 2
1.4仔细认真地使用C++ 4
1.5软件成份 6
1.6有关类的更多讨论 6
第二章 怎样从C过渡到C++ 8
2.1从C快速进入 C++ 8
2.2如何从C全面转换为C++ 11
第三章工具库 14
3.1开关和布尔型 14
3.2错误报告 17
3.3随机数的产生 22
第四章串类 27
4.1设计 27
4.2枚举类型 27
4.3数据成员 28
4.4错误处理 28
4.5实用函数 30
4.6构造函数和析构函数 31
4.7转换操作符 34
4.8赋值操作符 35
4.9连接 36
4.10比较操作符 39
4.11子串搜索 42
4.12子串删除 51
4.13串插入 53
4.14子串析取 56
4.16大小写转换 58
4.15下标 58
4.17 I/O流 60
4.18 String类的优点 61
第五章范围和下标 62
5.1 限定了范围的值 62
5.2下标 70
第六章为数组建立块 81
6.1检查C风格的数组 81
10.1设计优选 1 84
6.2一个基本的数组类 85
6.3数组指针 95
第七章可排序数组 103
7.1 了解QuickSort的工作原理 104
7.2一个简单的实现 108
7.3消除递归 110
7.4一些小改动 113
7.5如何选择基准元素 115
7.6另外一些改进方法 121
7.7 SortableArray类 121
第八章整数数组 130
8.1 IntArray类 130
8.2 用于IntArray的指针 151
第九章浮点数数组 157
9.1 DblArray类 157
9.2用于DblArray的指针 179
9.3封装 183
第十章基本统计 184
10.2构造函数和赋值 184
10.3求值域 186
10.4数列计算 188
10.5分布的矩 189
10.6用Z-score来理解各个独立的值 193
10.7相关(correlation) 196
10.8例子 198
10.9小结 201
第十一章永久对象 202
11.1永久对象 202
11.2保持永久性的途径 202
11.3类属(generic)数据 204
11.4定义永久性 208
11.5串作为键值 209
11.6数据文件类 212
11.7一个永久性的例子 219
11.8有效地使用DataBlock 223
第十二章散列表 224
12.1什么是散列 224
12.2冲突和复写 225
12.3散列算法 225
12.4散列表的类 226
12.5操作中的散列表 240
第十三章用散列表索引文件 246
13.1随机访问的文件 246
13.2 DataFile类 247
13.3应用DataFile 268
13.4把散列表用作索引 275
13.5 HashFileEntry类 275
13.6 HashFileBucket类 276
13.7 HashFileTable类 278
13.8 HashFile类 281
13.9应用HashFile 289
第十四章树结构 296
14.1二叉树 296
14.2二叉树类 300
14.3使用二叉树 310
14.4二叉树的问题 311
第十五章用B树的索引文件 314
15.1 B树的特性 314
15.2 BTreeErrorBase类 321
15.3 PageKey类 322
15.4 Page类 326
15.5 PageFile类 329
15.6 BTreeFile类 336
15.7使用B树文件 358
A.1第三章工具库代码列表 365
附录A代码列表 365
A.2第四章串类代码列表 370
A.3第五章范围和下标代码列表 392
A.4第六章为数组建立块代码列表 407
A.5第七章可排序数组代码列表 419
A.6第八章整数数组代码列表 425
A.7第九章浮点数数组代码列表 460
A.8第十章基本统计代码列表 504
A.9第十一章永久对象代码列表 517
A.10第十二章散列表代码列表 539
A.1 1第十三章用散列表索引文件代码列表 552
A.12第十四章树结构代码列表 563
A.13第十五章用B树索引文件代码列表 572
附录B ASCII码表 599