目录 3
第一篇 预备知识 3
第1章 C++编程技术 3
1-1C++与C语言的区别 4
1-1-1文件扩展名的改变 4
1-1-2简化输入/输出手段 5
1-1-3数据类型声明的改变 5
1-1-4动态内存分配运算符的使用 6
1-1-5引用(References)类型 8
1-1-6const语义的扩展 9
1-1-7指针声明类型与对象类型相一致 13
1-1-8int与char不再等价 13
1-1-9结构数据类型的变化 13
1-1-10数组和指针技术的不同 14
1-2C++存储技术 15
1-2-1C++存储类型 15
1-2-2C++存取修饰符 16
1-2-3C++对象的生存期 17
1-3-1类的构造函数、析构函数与赋值函数 19
1-3C++函数技术 19
1-3-2在派生类中实现类的基本函数 29
1-3-3内联函数技术 30
1-3-4友元函数技术 31
1-4C++面向对象机制的实现 33
1-4-1类的继承技术 33
1-4-2函数重载技术 37
1-4-3运算符重载技术 38
1-4-4纯虚函数和抽象类技术 40
1-5小结 42
第2章 C++标准库技术 43
2-1C++标准库简介 44
2-1-1I/O流技术 46
2-1-2string类 48
2-1-3标准异常类 48
2-1-4标准模板库类 49
2-2C++输入/输出流技术 50
2-2-1C++语言输入/输出流概述 50
2-2-2输入/输出格式控制 50
2-2-3特殊输入/输出流格式的设定 55
2-2-4自定义的流操作符 60
2-2-5根本不用于标准流运算符间的流字符串读/写函数 61
2-2-6标准输入/输出流的操作符的重载 62
2-2-7C++文件输入/输出流 63
2-3C++字符串技术 75
2-3-1字符串类基本操作 75
2-3-2复杂字符串实例 89
2-4-1绝对终止机制 92
2-4标准异常类 92
2-4-2非局部Goto机制 95
2-4-3signals机制 95
2-4-4C++异常处理机制 97
2-4-5类的异常处理 99
2-5小结 100
第二篇 C++STL技术原理和组成 103
第3章 STL技术原理 103
3-1模板概述 104
3-1-1Smalltalk方法 104
3-1-2模板方法 105
3-1-3模板参数 106
3-1-4关键字typename的使用 107
3-2函数模板 108
3-2-1函数模板基础 108
3-2-2函数的定制 110
3-2-3函数模板实例 112
3-3类模板 115
3-3-1类模板定义 116
3-3-3类模板中的友元 118
3-3-2类模板使用 118
3-3-4模板程序设计举例 119
3-4模板安全 122
3-4-1Class类型的参数 123
3-4-2包容安全 124
3-4-3默认构造函数 124
3-4-4operatornew 125
3-4-5Destructor 125
3-4-6其他 126
3-5-1一个特殊化的例子 129
3-5模板的特殊性 129
3-5-2指针特殊化 130
3-6模板实例——list容器类设计 132
3-7小结 135
第4章 STL技术概述 137
4-1STL简介 138
4-1-1什么是STL 138
4-1-2STL的发展 139
4-1-3STL的使用和实现——确定无益后删除 140
4-1-4命名空间技术 142
4-2STL基本结构 143
4-2-1容器(Containers) 144
4-2-2算法(Algorithms) 148
4-2-3迭代器(Iterators) 150
4-2-4函数对象(FunctionObject) 153
4-2-5其他部件 154
4-3STL编程概述 154
4-3-1传统C++编程技术 155
4-3-2STL编程技术 156
4-4STL头文件和编译器 161
4-5STL与MFC比较 162
4-5-1MFC的缺陷 163
4-5-2STL与MFC指针技术的差别 163
4-5-3STL技术与MFC的互补 165
4-5-4STL与MFC的类差别 167
4-5-5STL与MFC的互相转换 174
4-6STL编程关键 176
4-5-1STL容器技术 176
4-5-2C++和STL技术 178
4-7小结 184
第三篇 C++STL容器编程技术 189
第5章 STL容器技术总述 189
5-1容器技术概述 190
5-1-1容器介绍 193
5-1-2Forward容器 194
5-1-3Reversible容器 195
5-1-4Sequence 195
5-2-1vector头文件 196
5-2vector技术 196
5-1-5Associative容器 196
5-2-2vector对象 197
5-2-3vector实例 199
5-3deque技术 200
5-3-1deque头文件 201
5-3-2deque对象 201
5-3-3deque实例 203
5-4list技术 204
5-4-2list对象 205
5-4-1list头文件 205
5-4-3list实例 208
5-5stack技术 209
5-5-1stack头文件 209
5-5-2stack对象 210
5-5-3stack实例 211
5-6queue技术 213
5-6-1queue头文件 213
5-6-2queue对象 213
5-6-3queue实例 214
5-7priority_queue技术 216
5-7-1priority_queue头文件 217
5-7-2priority_queue对象 217
5-7-3priority_queue实例 218
5-8slist技术 220
5-9关联式容器 221
5-9-1set介绍 221
5-9-2multiset介绍 224
5-9-3map介绍 228
5-9-4multimap介绍 233
5-9-5实例详解 237
5-10小结 238
第6章 vector技术编程详解 239
6-1vector编程入门 240
6-1-1定义vector 240
目录 242
6-1-2vector初始化 242
6-1-3vector大小统计 243
6-2-1判断vector是否空 244
6-2vector基本使用 244
6-2-2使用循环遍历成员 246
6-2-3使用迭代器 247
6-2-4使用算法 248
6-3vector高级编程技术 251
6-3-1vector对象的查找 251
6-3-2vector对象的搜索 252
6-3-3vector字符串处理 253
6-3-4vector的排序 255
6-3-5vector元素增加 256
6-3-6vector元素删除 257
6-3-7vector对象交换 260
6-4vector程序综合实例分析 261
6-5小结 264
第7章 deque技术编程详解 265
7-1deque编程入门 266
7-1-1deque的定义 266
7-1-2deque赋值 268
7-1-3deque大小度量函数 270
7-1-4返回函数 271
7-2deque编程深入 276
7-2-1判断容器是否为空 276
7-2-2deque访问 278
7-2-3deque重置技术 279
7-2-4容器内容交换 280
7-3deque插入和删除技术 282
7-3-1insert操作 283
7-3-2erase操作 284
7-3-3clear操作 285
7-4deque模板函数详解 286
7-4-1operator[] 286
7-4-2operator== 288
7-4-3operator< 288
7-4-4operator!= 289
7-4-5operator<= 290
7-4-6operator> 290
7-4-7operator>= 291
7-5deque实例详解 292
7-6小结 295
第8章 list技术编程详解 297
8-1list编程入门 298
8-1-11ist的定义 298
8-1-2list赋值 301
8-1-3list大小度量函数 306
8-1-4返回函数 309
8-2-1判断容器是否为空 313
8-2list编程详解 313
8-2-2list访问 314
8-2-3list重置技术 315
8-2-4容器内容交换 317
8-3list插入和删除技术 319
8-3-1insert操作 319
8-3-2erase操作 321
8-3-3clear操作 323
8-4list模板函数详解 323
8-4-2operator< 324
8-4-1operator== 324
8-4-3operator!= 325
8-4-4operator<= 326
8-4-5operator> 327
8-4-6operator>= 327
8-5list特殊函数 328
8-5-1merge()函数的使用 328
8-5-2remove() 330
8-5-3remove_if() 331
8-5-4sort() 332
8-5-5splice() 333
8-5-6unique() 335
8-6list实例详解 336
8-7小结 342
第9章 set和multiset技术编程详解 343
9-1set和multiset定义和创建 344
9-1-1set类模板简介 345
9-1-2multiset类模板简介 347
目录 349
9-2-1begin函数 349
9-2set和multiset编程基础 349
9-2-2end函数 351
9-2-3rbegin函数 352
9-2-4rend函数 354
9-2-5判断空函数 357
9-2-6计算大小函数 358
9-2-7元素的插入 360
9-2-8元素的删除操作 362
9-3-1count函数 366
9-3set和multiset深入编程 366
9-3-2元素的查找 368
9-3-3上下限迭代器的返回 370
9-3-4元素的随机访问 371
9-3-5元素大小比较 375
9-3-6获取内存分配器 379
9-4set和multiset编程实例 381
9-5小结 387
第10章 map和multinmap技术编程详解 389
10-1map和multimap定义和使用 390
10-1-1map类模板简介 391
10-1-2multimap类模板简介 393
10-2map和multimap编程基础 395
10-2-1begin函数 395
10-2-2end函数 397
10-2-3rbegin函数 399
10-2-4rend函数 401
10-2-5判断空函数 404
10-2-6计算大小函数 405
10-2-7元素的插入 408
10-2-8元素的删除操作 410
10-2-9元素的交换 414
10-3map和multimap深入编程 417
10-3-1count函数 417
10-3-2元素的查找 418
10-3-3元素相等时上下限迭代器的返回 420
10-3-4元素的随机访问 423
10-3-5元素大小比较 427
10-3-6获取内存分配器 430
10-4编程实例 433
10-5小结 440
第四篇 C++算法技术 443
第11章 通用算法技术 443
11-1通用算法技术简介 444
11-2非修正序列算法 448
11-2-1查找容器中相同的相邻元素 448
11-2-2容器中相同元素统计 449
11-2-3容器对象变量比较 450
11-2-4元素查找 451
11-2-5特定的循环操作 454
11-2-6不相等元素查找 456
11-2-7采用search查找函数 458
11-3修正序列算法 459
11-3-1元素复制 460
11-3-2赋值操作 461
11-3-3通过函数进行元素的赋值 462
11-3-4容器拆分技术 463
11-3-5重新随机分布 464
11-3-6元素删除 466
11-3-7元素替换 467
11-3-8元素的旋转 467
11-3-9元素颠倒算法 469
11-3-10元素交换算法 470
11-3-11容器运算技术 472
11-3-12删除容器中重复元素 473
11-4排序算法 475
11-4-1排序算法 475
11-4-2排序元素的查找 478
11-4-3字典式比较 483
11-4-4极值元素求解 484
11-4-5合并排序算法 489
11-4-6拆分排序 492
11-4-7堆栈操作技术 493
11-5数值算法 495
11-5-1元素求和 495
11-5-2元素内积 498
11-5-3序列相邻差 499
11-6小结 500