定 价:49 元
丛书名:中国高等学校计算机科学与技术专业 应用型 规划教材
当前图书已被 2 所学校荐购过!
查看明细
- 作者:刘德山,金百东编著
- 出版时间:2015/6/1
- ISBN:9787302400356
- 出 版 社:清华大学出版社
- 中图法分类:TP312C
- 页码:368
- 纸张:胶版纸
- 版次:2
- 开本:16K
《C++ STL基础及应用(第2版)/中国高等学校计算机科学与技术专业 应用型 规划教材》全面而又系统地介绍标准模板库(STL)泛型应用开发技术,基础知识部分包括模板、迭代器、输入输出流、字符串、函数对象、通用容器、非变异算法、变异算法、排序等,集成应用部分包括STL算法的综合应用、在数据结构中的应用、在Visual C++上的应用等。本书从应用出发,每章都包含大量示例和详细的结果分析,旨在使读者学会STL各个知识体系的应用方法,体会STL思维的巧妙之处。对某些稍难示例的设计思想也做了详细说明。 本书可作为专业技术人员、大专院校计算机专业的本科生、研究生学习C++泛型编程的教材或参考书,对编写Java泛型程序也有一定的指导意义
2008年7月STL(Standard Template Library,标准模板库)是C++泛型标准化内容的重要组成部分,主要由容器、迭代器和算法三部分组成,其中封装了数据结构中的绝大部分内容。运用STL开发应用程序可以共享各种容器及算法,避免了低层次的各种容器及常用算法的反复开发,在代码一致性、升级、维护等方面都有很大的优越性。因此,学习STL是进行深层次开发C++应用程序的重要途径。但是,目前市场上关于STL的书籍很多是译著,在思考方法上可能与我们的学生不一致,学习起来很吃力。所以,本书力求把多年的STL编程经验按照学生的思维方式进行编排,希望学生们能很快学会STL泛型编程方法,体会STL泛型编程的乐趣。
本书第1版于2010年出版,很多读者在使用过程中给予了积极的肯定,并提出了中肯的建议。根据近几年的教学实践,作者对教材内容、开发环境做了调整,使其更适用于不断变化的C++教学及开发。主要修订如下。
(1) 第1章~第10章所有示例程序,第11章部分程序都在DEVCPP编译环境下重新调式,与原来的VC稍有不同。很多读者认为VC的STL有许多漏洞,DEV更好,支持gcc编译。可直接移植到Linux、Unix下,所有代码修改的部分均已调试通过。
(2) 删除了10.11“自定义STL风格函数”。该部分涉及STL内核程序,而VC、DEV下的内核是不同的,这里不宜进行分类讨论。另外,也删除了原1.3节“建立STL程序的方法”。
(3) 作为配套资源,本书提供所有调试程序的源码,并提供32位或64位的DEV开发环境。
全书共分11章,第1~10章侧重于基础知识部分,第11章侧重于综合应用部分。
第1章介绍STL的历史和主要内容以及本书用到的开发环境。
第2章通过示例说明STL中的内存管理思想、重要的traits模板技术、模板与操作符重载的关系。
第3章介绍STL中引入迭代器的原因,并通过自定义迭代器示例加深理解迭代器的内涵。
第4章介绍标准输入输出流、文件输入输出流、字符串输入输出流。
第5章介绍字符串创建方式及增、删、改、查等常用功能应用方法。
第6章介绍引入函数对象的原因,系统函数对象有哪些,自定义函数对象应用方法。C++ STL基础及应用(第2版) 第7章介绍vector、deque、list、queue、stack、priority_queue、bitset、set和map等通用容器的用法,并强调了容器适配器的作用。
第8~10章主要是讲算法。第8章介绍非变异算法,包括循环、查询、计数、比较等功能;第9章介绍变异算法,包含复制、交换、变换、替换、填充、生成、删除、唯一、反转、环移、随机、划分等功能;第10章介绍排序及相关操作的算法。
第11章侧重于集成应用,包括算法综合应用、在数据结构中应用、在Visual C++中应用三部分。算法综合应用主要介绍在多态、文件解析、综合查询中的STL应用方法;在数据结构中应用介绍全排列、频度、最长公共子序列、大整型数加法、乘法、矩阵、回溯、字符串表达式、图中的STL应用方法。在Visual C++中应用介绍用STL容器存储绘图信息,容器+算法实现数据保存与查询问题,并介绍STL与动态链接库的接口问题等。
本书第1~5和第11章由刘德山编写,第6~10章由金百东编写。因本书程序较多,全书变量均用正体。
本书内容循序渐进,示例丰富,第1~10章的所有示例代码编译后就可以运行。第11章某些程序由于较大,做了简化处理。示例结果都做了必要的说明,对一些稍难的题目,对其设计思想也做了相应的论述,帮助读者加深对STL的理解。
由于作者水平有限,时间紧迫,书中难免有疏漏之处,恳请广大读者批评指正,不胜感激。
编者2015年3月
第1章STL概述1
1.1STL历史1
1.2STL内容2
1.3命名空间3
第2章模板5
2.1通过模板初识STL思维5
2.2traits技术8
2.3模板与操作符重载12
第3章迭代器17
3.1什么是迭代器17
3.2迭代器类位置22
3.3进一步理解迭代器25
3.4STL迭代器26
第4章输入输出流31
4.1标准输入输出流31
4.1.1插入符与提取符31
4.1.2get系列函数33
4.1.3处理流错误34
4.2文件输入输出流36
4.2.1文件打开36
4.2.2文件关闭36
4.2.3文件读写36
4.3字符串输入输出流41
4.4综合示例42C++ STL基础及应用(第2版) 目录 第5章字符串47
5.1字符串创建及初始化47
5.1.1基本创建方式47
5.1.2迭代器创建方式48
5.2字符串操作48
5.2.1插入操作48
5.2.2替换操作49
5.3字符串查询50
5.4在字符串中删除字符52
5.5字符串比较52
5.6综合示例53
第6章函数对象59
6.1简介59
6.1.1为何引入函数对象59
6.1.2函数对象分类60
6.1.3简单示例61
6.2一元函数62
6.3二元函数64
6.4系统函数对象66
6.4.1算术类函数对象67
6.4.2关系运算类函数对象70
6.4.3逻辑运算类函数对象72
6.4.4函数适配器72
6.5综合示例77
第7章通用容器81
7.1概述81
7.1.1容器分类81
7.1.2容器共性82
7.1.3容器比较83
7.2vector容器83
7.2.1概述83
7.2.2初始化示例84
7.2.3增加及获得元素示例86
7.2.4修改元素示例90
7.2.5删除元素示例91
7.2.6进一步理解vector92
7.2.7综合操作示例93
7.3deque容器97
7.3.1常用函数97
7.3.2基本操作示例98
7.3.3综合操作示例100
7.4list容器102
7.4.1常用函数103
7.4.2基本操作示例104
7.4.3综合操作示例107
7.5队列和堆栈113
7.5.1常用函数113
7.5.2容器配接器114
7.5.3基本操作示例115
7.5.4综合操作示例118
7.6优先队列121
7.6.1常用函数121
7.6.2基本操作示例122
7.6.3综合操作示例123
7.7bitset容器126
7.7.1常用函数126
7.7.2基本操作示例127
7.7.3综合操作示例130
7.8集合133
7.8.1常用函数133
7.8.2基本操作示例134
7.8.3综合操作示例137
7.9映射140
7.9.1常用函数140
7.9.2基本操作示例141
7.9.3综合操作示例144
7.10再论迭代器148
第8章非变异算法153
8.1循环153
8.1.1主要函数153
8.1.2示例分析154
8.2查询158
8.2.1主要函数158
8.2.2示例分析161
8.3计数169
8.3.1主要函数169
8.3.2示例分析170
8.4比较172
8.4.1主要函数172
8.4.2示例分析173
第9章变异算法177
9.1复制178
9.1.1主要函数178
9.1.2示例分析179
9.2交换180
9.2.1主要函数180
9.2.2示例分析181
9.3变换182
9.3.1主要函数182
9.3.2示例分析183
9.4替换186
9.4.1主要函数186
9.4.2示例分析188
9.5填充190
9.5.1主要函数190
9.5.2示例分析191
9.6生成192
9.6.1主要函数192
9.6.2示例分析193
9.7删除198
9.7.1主要函数198
9.7.2示例分析199
9.8唯一204
9.8.1主要函数204
9.8.2示例分析205
9.9反转207
9.9.1主要函数207
9.9.2示例分析208
9.10环移209
9.10.1主要函数209
9.10.2示例分析210
9.11随机212
9.11.1主要函数212
9.11.2示例分析212
9.12划分215
9.12.1主要函数215
9.12.2示例分析216
第10章排序及相关操作219
10.1排序220
10.1.1主要函数220
10.1.2示例分析222
10.2第n个元素227
10.2.1主要函数227
10.2.2示例分析228
10.3二分检索229
10.3.1主要函数229
10.3.2示例分析231
10.4归并232
10.4.1主要函数232
10.4.2示例分析233
10.5有序结构上的集合操作234
10.5.1主要函数234
10.5.2示例分析237
10.6堆操作242
10.6.1主要函数242
10.6.2示例分析244
10.7最大和最小247
10.7.1主要函数247
10.7.2示例分析248
10.8词典比较249
10.8.1主要函数249
10.8.2示例分析250
10.9排列生成器251
10.9.1主要函数251
10.9.2示例分析252
10.10数值算法253
10.10.1主要函数253
10.10.2示例分析255
第11章STL应用257
11.1算法的综合运用257
11.1.1在多态中的应用257
11.1.2set、map应用261
11.1.3ini文件解析264
11.1.4综合查询269
11.2在数据结构中的应用280
11.2.1全排列应用280
11.2.2频度问题283
11.2.3最长公共子序列问题285
11.2.4大整型数加法、乘法类288
11.2.5矩阵问题293
11.2.6回溯问题296
11.2.7字符串表达式300
11.2.8图306
11.3在Visual C++中应用316
11.3.1Scribble绘图程序317
11.3.2数据库操作程序324
11.3.3文本文件排序、查询337
11.3.4基于配置文件的查询程序346
11.3.5STL与动态链接库360
参考文献369