C++STL基础及应用

出版时间:2010-10  出版社:清华大学出版社  作者:金百东,刘德山 编著  页数:368  
Tag标签:无  

前言

  应用是推动学科技术发展的原动力,计算机科学是实用科学,计算机科学技术广泛而深入地应用推动了计算机学科的飞速发展。应用型创新人才是科技人才的一种类型,应用型创新人才的重要特征是具有强大的系统开发能力和解决实际问题的能力。培养应用型人才的教学理念是教学过程中以培养学生的综合技术应用能力为主线,理论教学以够用为度,所选择的教学方法与手段要有利于培养学生的系统开发能力和解决实际问题的能力。  随着我国经济建设的发展,对计算机软件、计算机网络、信息系统、信息服务和计算机应用技术等专业技术方向的人才的需求日益增加,主要包括软件设计师、软件评测师、网络工程师、信息系统监理师、信息系统管理工程师、数据库系统工程师、多媒体应用设计师、电子商务设计师、嵌入式系统设计师和计算机辅助设计师等。如何构建应用型人才培养的教学体系以及系统框架,是从事计算机教育工作者的责任。为此,中国计算机学会计算机教育专业委员会和清华大学出版社共同组织启动了《中国高等学校计算机科学与技术专业(应用型)学科教程》的项目研究。参加本项目的研究人员全部来自国内高校教学一线具有丰富实践经验的专家和骨干教师。项目组对计算机科学与技术专业应用型学科的培养目标、内容、方法和意义,以及教学大纲和课程体系等进行了较深入、系统的研究,并编写了《中国高等学校计算机科学与技术专业(应用型)学科教程》(简称《学科教程》)。《学科教程》在编写上注意区分应用性人才与其他人才在培养上的不同,注重体现应用型学科的特征。在课程设计中,《学科教程》在依托学科设计的同时,更注意面向行业产业的实际需求。为了更好地体现《学科教程》的思想与内容,我们组织编写了《中国高等学校计算机科学与技术专业(应用型)规划教材》,旨在能为计算机专业应用型教学的课程设置、课程内容以及教学实践起到一个示范作用。本系列教材的主要特点如下:  1.完全按照《学科教程》的体系组织编写本系列教材,特别是注意在教材设置、教材定位和教材内容的衔接上与《学科教程》保持一致。  2.每门课程的教材内容都按照《学科教程》中设置的大纲精心编写,尽量体现应用型教材的特点。  3.由各学校精品课程建设的骨干教师组成作者队伍,以课程研究为基础,将教学的研究成果引入教材中。  4.在教材建设上,重点突出对计算机应用能力和应用技术的培养,注重教材的实践性。  5.注重系列教材的立体配套,包括教参、教辅以及配套的教学资源、电子课件等。

内容概要

本书全面系统地介绍标准模板库(STL)泛型应用开发技术。基础知识部分包括模板、迭代器、输入输出流、字符串、函数对象、通用容器、非变异算法、变异算法、排序等;集成应用部分包括STL算法的综合应用、在数据结构中的应用、在Visual C++上的应用等。本书从应用出发,每章都包含大量的示例和详细的结果分析,旨在使读者学会STL各个知识体系的应用方法,体会STL思维的巧妙之处。对某些稍难示例的设计思想也做了详细的说明。    本书可作为专业技术人员、大专院校计算机专业的本科生、研究生学习C++泛型编程的教材或参考书。本书对编写Java泛型程序也有一定的指导意义。

书籍目录

第1章  STL概述  1.1  STL历史    1  1.2  STL内容    2  1.3  建立STL程序的方法    3  1.4  命名空间    5第2章  模板  2.1  通过模板初识STL思维    7  2.2  traits技术    10  2.3  模板与操作符重载  14第3章  迭代器  3.1  什么是迭代器  19  3.2  迭代器类位置  24  3.3  进一步理解迭代器  27  3.4  STL迭代器    28第4章  输入输出流  4.1  标准输入输出流  33    4.1.1  插入符与提取符  33    4.1.2  get系列函数  35    4.1.3  处理流错误  36  4.2  文件输入输出流  38    4.2.1  文件打    38    4.2.2  文件关闭    38    4.2.3  文件读写    38  4.3  字符串输入输出流    43  4.4  综合示例    44第5章  字符串  5.1  字符串创建及初始化  49    5.1.1  基本创建方式  49    5.1.2  迭代器创建方式  50  5.2  字符串操作  50    5.2.1  插入操作    50    5.2.2  替换操作    51  5.3  字符串查询  52  5.4  字符串中删除字符    54  5.5  字符串比较  54  5.6  综合示例    55第6章  函数对象  6.1  简介    61    6.1.1  为何引入函数对象  61    6.1.2  函数对象分类  62    6.1.3  简单示例    63  6.2  一元函数    64  6.3  二元函数    66  6.4  系统函数对象  68    6.4.1  算术类函数对象  69    6.4.2  关系运算类函数对象    72    6.4.3  逻辑运算类函数对象  74    6.4.4  函数适配器  74  6.5  综合示例    79第7章  通用容器  7.1  概述    83    7.1.1  容器分类    83    7.1.2  容器共性    84    7.1.3  容器比较    85  7.2  vector容器    85    7.2.1  概述    85    7.2.2  初始化示例  86    7.2.3  增加及获得元素示例  88    7.2.4  修改元素示例  92    7.2.5  删除元素示例  93    7.2.6  进一步理解vector    94    7.2.7  综合操作示例  95  7.3  deque容器    99    7.3.1  常用函数    99    7.3.2  基本操作示例  100    7.3.3  综合操作示例  102  7.4  list容器    104    7.4.1  常用函数    105    7.4.2  基本操作示例  106    7.4.3  综合操作示例  109  7.5  队列和堆栈  115    7.5.1  常用函数    115    7.5.2  容器配接器  116    7.5.3  基本操作示例  117    7.5.4  综合操作示例  120  7.6  优先队列    123    7.6.1  常用函数    123    7.6.2  基本操作示例  124    7.6.3  综合操作示例  125  7.7  bitset容器    128    7.7.1  常用函数    128    7.7.2  基本操作示例  129    7.7.3  综合操作示例  132  7.8  集合    135    7.8.1  常用函数    135    7.8.2  基本操作示例  136    7.8.3  综合操作示例  139  7.9  映射    142    7.9.1  常用函数    142    7.9.2  基本操作示例  143    7.9.3  综合操作示例  145  7.10  再论迭代器  150第8章  非变异算法  8.1  循环    155    8.1.1  主要函数    155    8.1.2  示例分析  156  8.2  查询    160    8.2.1  主要函数    160    8.2.2  示例分析    163  8.3  计数    171    8.3.1  主要函数    171    8.3.2  示例分析    172  8.4  比较    174    8.4.1  主要函数    174    8.4.2  示例分析    175第9章  变异算法  9.1  复制    180    9.1.1  主要函数    180    9.1.2  示例分析    181  9.2  交换    182    9.2.1  主要函数    182    9.2.2  示例分析    183  9.3  变换    184    9.3.1  主要函数    184    9.3.2  示例分析    185  9.4  替换    188    9.4.1  主要函数    188    9.4.2  示例分析    190  9.5  填充    191    9.5.1  主要函数    191    9.5.2  示例分析    192  9.6  生成    193    9.6.1  主要函数    193    9.6.2  示例分析    194  9.7  删除    199    9.7.1  主要函数    199    9.7.2  示例分析  200  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    8.11.1  主要函数  212    9.11.2  示例分析  212  9.12  划分    215    9.12.1  主要函数    215    9.12.2  示例分析    216第10章  排序及相关操作  10.1  排序    220    10.1.1  主要函数    220    10.1.2  示例分析    222  10.2  第n个元素  227    10.2.1  主要函数    227    10.2.2  示例分析    227  10.3  二分检索    228    10.3.1  主要函数    228    10.3.2  示例分析    230  10.4  归并    232    10.4.1  主要函数    232    10.4.2  示例分析  233  10.5  有序结构上的集合操作  234    10.5.1  主要函数    234    10.5.2  示例分析    236  10.6  堆操作    241    10.6.1  主要函数    241    10.6.2  示例分析    242  10.7  最大和最小  245    10.7.1  主要函数    245    10.7.2  示例分析    247  10.8  词典比较    247    10.8.1  主要函数    247    10.8.2  示例分析    248  10.9  排列生成器  249    10.9.1  主要函数    249    10.9.2  示例分析    250  10.10  数值算法    251    10.10.1  主要函数    251    10.10.2  示例分析    253  10.11  自定义STL风格函数  254第11章  STL应用  11.1  算法的综合运用    257    11.1.1  在多态中的应用    257    11.1.2  set、map应用    261    11.1.3  ini文件解析  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.1  Scribble绘图程序  317    11.3.2  数据库操作程序  324    11.3.3  文本文件排序、查询  337    11.3.4  基于配置文件的查询程序    346    11.3.5  STL  动态链接库  360参考文献

章节摘录

  (1)序列性容器:按照线性排列来存储某类型值的集合,每个元素都有自己特定的位置,顺序容器主要有vector、deque和list。  vector:就是动态数组。它是在堆中分配内存,元素连续存放,有保留内存,如果减少大小后内存也不会释放。新值大于当前大小时才会再分配内存。对最后元素操作最快(在后面添加删除最快),此时一般不需要移动内存。只有保留内存不够时,才需要对中间和开始处进行添加删除元素操作,这时需要移动内存,如果你的元素是结构或是类,那么移动的同时还会进行构造和析构操作。vector的一大特点是可直接访问任何元素。  deque:与vector类似,支持随机访问和快速插入删除,它在容器中某一位置上的操作所花费的是线性时间。与vector不同的是,deque还支持从开始端插入、删除数据。由于它主要对前端、后端进行操作,因此也叫做双端队列。  list:又叫链表,是一种双线性列表,只能顺序访问(从前向后或者从后向前),与前面两种容器类有一个明显的区别就是它不支持随机访问。要访问表中某个下标处的项需要从表头或表尾处(接近该下标的一端)开始循环。

图书封面

图书标签Tags

评论、评分、阅读与下载


    C++STL基础及应用 PDF格式下载


用户评论 (总计30条)

 
 

  •   不错哦 推荐 适合于了解stl库
  •   STL的好教材,特别是一般C++书上STL都写得比较简单。
  •   对于所有正在学习stl的同学,可以参考此书看看,里面的例子通俗易懂
  •   国内作者的STL教程,很期待!
  •   很好 对STL有很大的帮助
  •   这绝对是本好书,是走向面向对象和泛型编程的好书,是一种大学课本走向实际的一个桥梁,对于C++的编程无疑是一本进阶的书籍,虽然例子很简单,但透漏的是一种思想,面向对象的朴素辩证思想。赞一个
  •   这本书偏向基础 很详细 对初学者有很大的帮助
  •   我们授课教师编的一本书,内容很好,对所学课程很有帮助,支持金百东老师!!!
  •   前段时间在图书馆看到过这本书 写得挺适合于初学者的 例子虽然简单 但是实用性很强 是本好书 所以现在买下来 寒假回家继续看
  •   非常好的一本书,看一眼就不想关了
  •   作为一本教材来说,这已经很好啦,送货速度也比较快。
  •   目前学习st的入门好书。
  •   内容不错,实例很详尽,很适合初学者
  •   内容很好,挺详实的
  •   讲解的很透彻,简洁,不罗嗦。
  •   看了几页,讲的挺好,通俗易懂
  •   推荐大家去看一下,可以有哦~~
  •   这算是入门书。。但是我都用stl好些年头了,再看看还是能感悟到点什么,温故而知新
  •   这本书应该算是 C++ 模板方面的经典了,还提及函数对象
  •   很基础,通俗易懂
  •   这本书蛮好,找了很久了
  •   收到货时,书里面出现了页面长短不齐,不过,整体上书中的内容可以。。
  •   书不错,作者写的很认真
  •   我是因为近期做stl开发,就买了此书,这本书比较适合初学者,简单的开发可以当作参考,但是不够全面,我的意思不是说想看多深入的分析,举个例子,我想了解it = multimap.find(key)返回的迭代器(假如我一个key下有多个value),这时for(it;it<multimap.end();++it)这样遍历出来的东西,是指定key下的所有value,还是从指定key的位置开始向后所有value(包括其他key)?(伪代码,表示个意思)。但是这个问题本书没有涉及,所以我只好在编译器里自己实验了。
  •   太慢了,等了一星期才到
  •   还没有开始读,就不妄加评论了~~~
  •   这本书是用的VC++6.0的内置STL作为讲解对象的,VC++6.0是在98年推出,那个时候STL标准都还没有完全制定完,VC++6.0的内置STL的众所周知的非标准STL。这种教程完全是落伍的内容啊。
  •   看了四章,就发现了四处错误
  •   书适合入门者
  •   内容如何,不要问我
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7