C++ STL基础案例教程

-
【作 者】钟琪 著
【I S B N 】978-7-5170-4492-5
【责任编辑】张玉玲
【适用读者群】本专通用
【出版时间】2016-08-01
【开 本】16开
【装帧信息】平装(光膜)
【版 次】第1版第1次印刷
【页 数】192
【千字数】224
【印 张】12
【定 价】¥28
【丛 书】普通高等教育“十三五”规划教材
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书主要从案例化的角度介绍标准模板库(STL)泛型化应用开发技术的基础知识部分,共分7章:第1章讲述STL的发展和内容,并演示了利用CodeBlocks软件建立程序的方法;第2章对模板进行简介,主要介绍两类主要模板:函数模板和类模板;第3章是本书的核心章节,介绍了C++ STL提供的各种容器模板类;第4章专门讲述C++中的字符串,涉及C++标准程序库中的字符串处理类string;第5章介绍常见的几种函数对象及适配器的应用;第6章讲述连接容器和算法的迭代器使用;第7章讲述C++ STL中的算法,是C++ STL的核心内容。
本书从应用出发,既有完整的语法,又有丰富的案例,让读者充分体会STL思维的巧妙之处。
每个知识点均有示例进行讲解。在对每个知识点进行深入浅出的讲解后,基本上都会举例进行操作说明,让读者既有理论上的领悟,又有实践上的理解。
每节或每章均有应用案例。对每节或每章,根据知识的体系结构均附有大量有趣的竞赛案例,使读者能够从中领悟到一些编程技巧,同时还可以根据这些案例进行研究、修改和扩展。
内容的讲解遵循着由浅入深的原则进行。内容和示例的安排难点分散、前后连贯,并采用循序渐进、层次清晰的编写风格,便于学生理解和实现。
C++ STL是标准的C++模板库,是算法和其他一些标准组件的集合,其中封装了数据结构中的绝大部分内容。运用C++ STL开发应用程序可以共享各种容器及算法,避免了低层次的各种容器及常用算法的反复开发,提高了开发效率。但是,目前市场上关于STL的书籍大多是译著或者倾向于一般性的介绍,学生在学习过程中缺乏实战性的理解与应用,所以学习起来就显得有些吃力。编者经过多年的实际教学,参阅多本书籍,结合学生在各种竞赛中的实战经验,把自己多年来的授课讲义利用案例化的形式呈现给读者。
本书具有以下特点:
(1)每个知识点均有示例进行讲解。在对每个知识点进行深入浅出的讲解后,基本上都会举例进行操作说明,让读者既有理论上的领悟,又有实践上的理解。
(2)每节或每章均有应用案例。对每节或每章,根据知识的体系结构均附有大量有趣的竞赛案例,使读者能够从中领悟到一些编程技巧,同时还可以根据这些案例进行研究、修改和扩展。
(3)内容的讲解遵循着由浅入深的原则进行。内容和示例的安排难点分散、前后连贯,并采用循序渐进、层次清晰的编写风格,便于学生理解和实现。
在编写过程中,编者得到许多专家、同行以及中国水利水电出版社编辑的指导与帮助,得到“四川省卓越工程师教育培养计划—软件工程专业”(川教函〔2013〕750号)和“四川省教育综合项目—软件工程化人才培养”改革经费支持,在此一并表示感谢。
最后,也是最重要的,我要感谢我的爱人何文孝。在编写过程中,每每遇到问题,我都会跟他进行积极讨论;每当遇到困难时,他都不断地鼓励我、帮助我,才使我得以完成这本书。
由于时间仓促及作者水平有限,书中疏漏甚至错误之处在所难免,恳请广大读者批评指正,作者邮箱地址:45256796@qq.com。
第1章 STL概述 1
1.1 STL的发展 1
1.2 STL的内容 2
1.3 建立STL程序的方法 4
第2章 模板 8
2.1 函数模板 8
2.2 类模板 10
2.3 应用案例 13
第3章 通用容器 17
3.1 vector向量容器 17
3.1.1 创建vector对象 17
3.1.2 访问vector元素 19
3.1.3 插入vector元素 20
3.1.4 删除vector元素 21
3.1.5 向量的大小和容量 23
3.1.6 应用案例 25
3.2 集合容器 27
3.2.1 set与multiset 27
3.2.2 集合的相关操作 28
3.2.3 位集合bitset 33
3.2.4 应用案例 37
3.3 队列 42
3.3.1 普通队列 42
3.3.2 双端队列 43
3.3.3 优先队列 47
3.3.4 应用案例 52
3.4 堆栈 58
3.4.1 栈的操作 59
3.4.2 应用案例 60
3.5 映射 65
3.5.1 map和multimap对象的创建 65
3.5.2 map与multimap的相关操作 67
3.5.3 应用案例 72
3.6 链表 78
3.6.1 创建list对象 78
3.6.2 访问list元素 80
3.6.3 插入list元素 81
3.6.4 删除list元素 83
3.6.5 其他操作 85
3.6.6 应用案例 87
第4章 字符串 94
4.1 字符串的创建 94
4.2 字符串的操作 95
4.2.1 字符串的插入 95
4.2.2 字符串的删除和替换 98
4.2.3 字符串的查询 102
4.2.4 其他重要函数 107
4.3 应用案例 110
第5章 函数对象 117
5.1 函数对象概述 117
5.2 函数对象的作用 119
5.3 关系函数对象 124
5.3.1 等于和不等于 125
5.3.2 小于和小于等于 125
5.3.3 大于和大于等于 126
5.4 逻辑函数对象 127
5.4.1 逻辑与 127
5.4.2 逻辑或 127
5.4.3 逻辑非 128
5.5 算术函数对象 129
5.5.1 四则运算函数对象 129
5.5.2 求余和求反函数对换 130
5.6 适配器 131
5.6.1 绑定器 132
5.6.2 取反器 133
5.6.3 成员函数适配器 134
第6章 迭代器 138
6.1 使用迭代器 138
6.2 迭代器类型 139
6.2.1 输入型迭代器 139
6.2.2 输出型迭代器 140
6.2.3 前向迭代器 141
6.2.4 双向迭代器 142
6.2.5 随机存取迭代器 142
6.3 迭代器配接器 144
6.3.1 插入型迭代器 144
6.3.2 流迭代器 145
6.3.3 逆向迭代器 147
6.4 迭代器辅助函数 148
6.4.1 advance() 148
6.4.2 distance() 149
6.4.3 iter_swap() 150
6.5 应用案例 151
第7章 算法 154
7.1 排序算法 154
7.1.1 sort()算法与stable_sort()算法 154
7.1.2 partial_sort()算法与partial_sort_copy()算法 155
7.1.3 应用案例 157
7.2 删除算法 159
7.2.1 remove()算法和remove_if()算法 159
7.2.2 remove_copy()算法和remove_copy_if算法 160
7.2.3 unique()算法和unique_copy()算法 161
7.3 有序集合算法 163
7.3.1 集合的和(merge) 163
7.3.2 集合的并(set_union) 163
7.3.3 集合的交(set_intersection) 164
7.3.4 集合的差(set_difference) 165
7.3.5 集合的包含(includes) 166
7.3.6 应用案例 168
7.4 堆算法 169
7.4.1 堆概述 170
7.4.2 堆操作 170
7.4.3 应用案例 172
7.5 数值算法 175
7.5.1 求和(accumulate) 175
7.5.2 内积(inner_product) 176
7.5.3 部分和(partial_sum) 178
7.5.4 序列相邻差(adjacent_difference) 179
7.5.5 应用案例 180
参考文献 184
- Java面向对象程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实验指导与实训(第二版) [主编 倪燃]
- 程序思维与C语言实现 [张祎 王俊海 吕波]
- Python程序设计及实践教程 [肖朝晖]
- C语言程序设计 [魏琴 刘祖珉 赵仕波 肖阳春]
- C语言程序设计实验教程 [张小刚 司春景]
- 电气控制与PLC程序设计(第二版) [胡冠山]
- Java Web项目化设计实践教程 [邱云 曾陈萍]
- C语言程序设计(第三版) [主编 丁红 王立新 蔡开立]
- Python数据分析 [主编 冯志辉 赵磊 李放]
- Python程序设计与应用(第二版) [主编 张广渊]
- C程序设计实践教程 [刘卫国]
- C程序设计(慕课版) [刘卫国]
- 程序设计基础实践教程(C/C++语言版) [张桂芬 葛丽娜]
- C++案例项目精讲 [主编 杨国兴]
- SwiftUI完全开发 [李智威 著]
- MySQL数据库项目式教程 [陈亚峰]
- C语言程序设计习题与实验指导(第二版) [主编 甄增荣 张宾]
- C语言程序设计(第二版) [主编 甄增荣 田云霞]
- Unity3D虚拟现实应用开发实践 [主 编 刘龙]
- Python程序设计 [主编 姜春磊 陈虹洁]
- C语言程序设计实践教程(活页式) [主编 郑茵 陈巍 滕泓虬]
- 面向对象程序设计 [主编 张勇 张平华 赵小龙]
- Python程序设计基础及实战 [主编 刘健]
- C语言程序设计 [姜雪]
- Python程序设计实践教程 [王鹤琴 蔡正保]
- C++程序设计实践教程(第三版) [主编 刘卫国 曹岳辉]
- C++程序设计(第三版) [主编 曹岳辉 刘卫国]
- C语言程序设计项目化教程(活页式) [主编 张利华 潘晓利]
- 机器人流程自动化(RPA)实战——基于UiPath [主编 金鑫]