第一篇 预备知识
第一章 c++编程技术
1.1 c++与c语言区别 2
1.1.1文件扩展名的改变 2
1.1.2简化输入/输出手段 3
1.1.3 数据类型声明的改变 3
1.1.4动态内存分配算符的使用 4
1.1.5 引用 (references) 类型 6
1.1.6 const语义的扩展 7
1.1.7 指针声明类型与对象类型相一致 10
1.1.8 int与char不再等价 11
1.1.9 结构数据类型的变化 11
1.1.10 数组和指针技术的不同 11
1.2 c++存储技术 12
1.2.1 c++存储类型 12
1.2.2 c++存取修饰符 14
1.2.3 c++对象的生存期 14
1.3 c++函数技术 16
1.3.1类的构造函数、析构函数与赋值函数 16
1.3.2 在派生类中实现类的基本函数 26
.1.3.3内联函数技术 27
1.3.4友元函数技术 28
1.4 c++面向对象机制实现 29
1.4.1 类的继承技术 29
1.4.2 函数重载技术 33
1.4.3运算符重载技术 34
1.4.4纯虚函数和抽象类技术 36
1.5 小结 37
第二章 c++标准库技术
2.1 c++标准库简介 39
2.1.1 i/o流技术 41
2.1.2 string类 43
2.1.3 标准异常类 43
2.1.4 标准模板库类 44
2.2 c++输入/输出流技术 45
2.2.1 c++语言输入/输出流概述 45
2.2.2输入输出格式控制 45
3.2.3特殊输入/输出流格式的设定 50
2.2.4自定义的流操作符 54
2.2.5 根本不用于标准流运算符间的流字符串读/写函数 56
2.2.6 标准输入/输出流的操作符的重载 57
2.2.7 c++文件输入/输出流 58
2.3 c++字符串技术 69
2.3.1字符串类基本操作 70
2.3.2 复杂字符串实例 83
2.4标准异常类 86
2.4.1 绝对终止机制 86
2.4.2 非局部goto机制 88
2.4.3 signals机制 89
2.4.4 c++异常处理机制 90
2.4.5 类的异常处理 92
2.5小结 94
第二篇 c++ stl技术原理和组成
第三章 stl技术原理
3.1 模板概述 96
3.1.1 smalltalk 方法 96
3.1.2 模板方法 97
3.1.3模板参数 98
3.1.4关键字typename的使用 99
3.2 函数模板 100
3.2.1 函数模板基础 100
3.2.2 函数的定制 102
3.2.3 函数模板实例 104
3.3类模板 107
3.3.1 类模板定义 107
3.3.2 类模板使用 110
3.3.3类模板中的友元 110
3.3.4模板程序设计举例 111
3.4 模板安全 114
3.4.1 class类型的参数 115
3.4.2 使得包容安全 116
3.4.3 默认构造函数 116
3.4.4 operator new 117
3.4.5 destructor 118
3.4.6 其他 118
3.5模板的特殊性 121
3.5.1一个特殊化的例子 121
3.5.2 指针特殊化 123
3.6 模板实例-list 容器类设计 124
3.7 小结 127
第四章 stl技术概述
4.1 stl简介 129
4.1.1 什么是stl 129
4.1.2 stl的发展 130
4.1.3 stl的使用和实现 131
4.1.4 名字空间技术 133
4.2 stl基本结构 134
4.2.1 容器(containers) 135
4.2.2 算法(algorithms) 139
4.2.3迭代器(iterators) 141
4.2.4 函数对象(function object) 145
4.2.5 其它部件 145
4.3 stl编程概述 146
4.3.1 传统c++编程技术 146
4.3.2 stl编程技术 148
4.4 stl头文件和编译器 152
4.5 stl编程关键 154
4.5.1 stl容器技术 154
4.5.2 c++和stl技术 156
4.6 小结 161
第三篇 c++ stl容器编程技术
第五章 stl容器技术总述
5.1容器技术概述 163
5.1.1 容器介绍 167
5.1.2 forward 容器 167
5.1.3 reversible 容器 168
5.1.4 sequence 168
5.1.5 associative 容器 169
5.2 vector技术 170
5.2.1 vector头文件 170
5.2.2 vector对象 171
5.2.3 vector实例 174
5.3 deque技术 175
5.3.1 deque头文件 176
5.3.2 deque对象 176
5.3.3 deque实例 178
5.4 list技术 180
5.4.1 list头文件 180
5.4.2 list对象 181
5.4.3 list实例 184
5.5 stack技术 185
5.5.1 stack头文件 185
5.5.2 stack对象 186
5.5.3 stack实例 187
5.6 queue技术 189
5.6.1 queue头文件 189
5.6.2 queue对象 190
5.6.3 queue实例 191
5.7 priority_queue技术 193
5.7.1 priority_queue头文件 193
5.7.2 priority_queue对象 193
5.7.3 priority_queue实例 194
5.8 slist技术 197
5.9关联式容器 197
5.9.1 set介绍 198
5.9.2 multiset介绍 201
5.9.3 map介绍 204
5.9.4 multimap介绍 209
5.9.5 实例祥解 213
5.10小结 214
第六章 vector技术编程详解
6.1 vector编程入门 216
6.1.1定义vector 216
6.1.2 vector初始化 218
6.1.3 vector大小统计 219
6.2 vector基本使用 220
6.2.1 判断vector是否空 220
6.2.2 使用循环遍历成员 221
6.2.3使用迭代器 222
6.2.4 使用算法 223
6.3 vector高级编程技术 226
6.3.1 vector对象的查找 226
6.3.2 vector对象的搜索 227
6.3.3 vector字符串处理 228
6.3.4 vector的排序 230
6.3.5 vector元素增加 231
6.3.6 vector元素删除 231
6.3.7 vector对象交换 234
6.4 vector程序综合实例分析 235
6.5 小结 238
第七章 deque技术编程详解
7.1 deque 编程入门 240
7.1.1 deque的定义 240
7.1.2 deque赋值 242
7.1.3 deque大小度量函数 244
7.1.4 返回函数 245
7.2 deque 编程深入 250
7.2.1 判断容器是否为空 250
7.2.2 deque访问 251
7.2.3 deque重置技术 252
7.2.4 容器内容交换 253
7.3 deque插入和删除技术 255
7.3.1 insert操作 255
7.3.2 erase操作 257
7.3.3 clear操作 258
7.4 deque模板函数详解 258
7.4.1 operator[] 259
7.4.2 operator== 260
7.4.3 operator[ 261
7.4.4 operator!= 262
7.4.5 operator[= 262
7.4.6 operator] 263
7.4.7 operator]= 263
7.5 deque实例详解 264
7.6 小结 267
第八章 list技术编程详解
8.1 list编程入门 269
8.1.1 list的定义 269
8.1.2 list赋值 272
8.1.3 list大小度量函数 276
8.1.4 返回函数 279
8.2 list 编程详解 283
8.2.1 判断容器是否为空 283
8.2.2 list访问 284
8.2.3 list重置技术 285
8.2.4 容器内容交换 286
8.3 list插入和删除技术 288
8.3.1 insert操作 288
8.3.2 erase操作 290
8.3.3 clear操作 292
8.4 list模板函数详解 292
8.4.1 operator== 292
8.4.2 operator[ 293
8.4.3 operator!= 294
8.4.4 operator[= 294
8.4.5 operator] 295
8.4.6 operator]= 296
8.5 list特殊函数 297
8.5.1 merge()函数的使用 297
8.5.2 remove() 298
8.5.3 remove_if() 299
8.5.4 sort() 300
8.5.5 splice() 301
8.5.6 unique() 302
8.6 list实例详解 304
8.7 小结 309
第九章set和multiset技术编程详解
9.1 set和multiset定义和创建 311
9.1.1 set类模板简介 312
9.1.2 multiset类模板简介 314
9.2 set和multiset编程基础 316
9.2.1 begin函数 316
9.2.2 end 函数 317
9.2.3 rbegin函数 319
9.2.4 rend函数 321
9.2.5 判断空函数 323
9.2.6 计算大小函数 324
9.2.7 元素的插入 326
9.2.8 元素的删除操作 327
9.3 set和multiset编程深入 331
9.3.1 count函数 331
9.3.2 元素的查找 332
9.3.3 上下限迭代器的返回 334
9.3.4 元素的随机访问 335
9.3.5 元素大小比较 338
9.3.6获取内存分配器 342
9.4 set和multiset编程实例 344
9.5 小结 349
第十章map和multimap技术编程详解
10.1 map和multimap定义和使用 351
10.1.1 map类模板简介 352
10.1.2 multimap类模板简介 354
10.2 map和multimap编程基础 356
10.2.1 begin函数 356
10.2.2 end 函数 358
10.2.3 rbegin函数 360
10.2.4 rend函数 362
10.2.5 判断空函数 364
10.2.6 计算大小函数 365
10.2.7 元素的插入 367
10.2.8 元素的删除操作 369
10.2.9 元素的交换 373
10.3 map和multimap编程深入 375
10.3.1 count函数 375
10.3.2 元素的查找 376
10.3.3 元素相等时上下限迭代器的返回 378
10.3.4 元素的随机访问 380
10.3.5 元素大小比较 384
10.3.6 获取内存分配器 387
10.4 编程实例 389
10.5 小结 395
第四篇 c++ stl算法技术
第十一章 通用算法技术
13.1 通用算法技术简介 398
11.2 非修正序列算法 402
11.2.1 查找容器中相同的相邻元素 402
11.2.2 容器中相同元素统计 403
11.2.3 容器对象变量比较 404
11.2.4 元素查找 405
11.2.5 特定的循环操作 407
11.2.6 不相等元素查找 408
11.2.7 采用search查找函数 410
11.3修正序列算法 411
11.3.1 元素复制 412
11.3.3 赋值操作 413
11.3.4 通过函数进行元素的赋值 414
11.3.5 容器拆分技术 415
11.3.6 重新随机分布 416
11.3.7 元素删除 417
11.3.8 元素替换 418
11.3.9 元素的旋转 418
11.3.10 元素颠倒算法 420
11.3.11 元素交换算法 420
11.3.12 容器运算技术 422
11.3.13 删除容器中重复元素 424
11.4 排序算法 425
11.4.1 排序算法 426
11.4.2 排序元素的查找 428
11.4.3 字典式比较 432
11.4.4 极值元素求解 434
11.4.5 合并排序算法 438
11.4.6 拆分排序 440
11.4.7 堆栈操作技术 441
11.5 数值算法 443
11.5.1 元素求和 443
11.5.2 元素内积 445
11.5.3 序列相邻差 446
11.6 小结
1