C++ STL标准程序库开发指南
2013-5
中国铁道出版社
无
《C++ STL标准程序库开发指南》献给喜欢C++ STL的朋友,当您看见这本书,您应该对C++ STL已有了一定的了解,希望继续深造:或者您已经暗下决心来学习它。那么《C++ STL标准程序库开发指南》将是您最佳的选择。如果您已经有了一定的C/C++基础,那么学习《C++ STL标准程序库开发指南》会更加轻松。《C++ STL标准程序库开发指南》分为14章及两个附录。按照章节的先后顺序,由浅入深地讲解C++ STL应用开发技术。《C++ STL标准程序库开发指南》力求将STL涉及的问题一一列出讲解,使初学者能够少走弯路。《C++ STL标准程序库开发指南》的示例程序都是作者亲自编写或从MSDN中摘录的,简单易学,有助于读者掌握STL的知识。
第1章 类模板简介 1.1基本概念 1.1.1命名空间 1.1.2头文件 1.1.3面向对象的程序设计 1.1.4C++中的声明和定义 1.1.5最简单的C++程序 1.1.6指针 1.1.7函数 1.1.8文件 1.1.9程序的编译和链接 1.1.10程序的启动和终止 1.1.11异常处理 1.2类模板定义 1.2.1模板库(STL) 1.2.2STL之父——Alexander Stepanov 1.2.3类模板的英文原始定义 1.2.4类模板实例化 1.2.5类模板的成员函数 1.2.6类模板的静态数据成员 1.3成员模板 1.4友元模板 1.5函数模板 1.6类模板的参数 1.6.1关键字typename的使用 1.6.2关键字typename与关键字class 1.7模板库简介 1.7.1C语言和STL的演变历史 1.7.2STL的组件 1.7.3STL基本结构 1.7.4STL编程概述 1.7.5小结 1.8本章 小结 第2章 C++中的字符串 2.1字符串库简述 2.2字符的特点 2.3字符串类模板(basic_string模板类) 2.4字符串操作的通用函数 2.4.1构造器和析构器 2.4.2大小和容量 2.4.3元素存取(访问) 2.4.4字符串比较 2.4.5字符串内容修改和替换 2.4.6字符串联接 2.4.7字符串I/O操作 2.4.8字符串搜索 2.4.9字符串对迭代器的支持 2.4.10字符串对配置器的支持 2.5本章 小结 第3章 容器 3.1容器的概念 3.1.1容器成员和函数 3,1.2容器的种类和数据结构 3.2序列式容器概述 3.3序列式容器——vector类模板 3.3.1vector类基础 3.3.2vector类的成员函数 3.3.3vector高级编程 3.4序列式容器——list类模板 3.4.1list的定义和容量 3.4.2list容器基础成员函数 3.4.3运算符函数 3.4.4其他重要成员函数 3.5序列式容器——deque(双端队列)类模板 3.5.1容器deque和容器vector的对比 3.5.2容器deque的定义和容量 3.5.3deque容器基础成员函数 3.5.4deque容器的高级编程 3.5.5deque的模板函数 3.6关联式容器概述 3.7关联式容器——set/multiset类模板 3.7.1集合set的定义 3.7.2set和multiset的容量、搜寻和统计 3.7.3set和multiset的迭代器相关函数和赋值函数 3.7.4set和multiset的插入和移除 3.7.5set和multiset的比较运算符 3.8关联式容器——map/multimap类模板 3.8.1map和multimap基础 3.8.2map和multimap成员函数 3.8.3map和multimap的高级编程 3.9特殊容器用法 3.9.1bitset类模板 3.9.2stack类模板 3.9.3队列queue类模板 3.9.4PriorityQueues类模板 3.10本章 小结 第4章 c++中的算法 4.1算法库简介 4.2非修改性序列算法 4.2.1foreach算法 4.2.2元素计数 4.2.3最大最小值 4.2.4搜寻元素 4.2.5比较 4.3变动性算法 4.3.1复制 4.3.2转换 4.3.3互换 4.3.4赋值 4.3.5替换 4.3.6逆转 4.3.7旋转 4.3.8排列 4.4排序及相关操作 4.4.1全部元素排序 4.4.2局部排序 4.4.3根据某个元素排序 4.4.4堆(Heap)操作 4.4.5合并排序 4.4.6搜索 4.5删除算法 4.6本章 小结 第5章 迭代器(Iterator) 5.1迭代器及其特性 5.2头文件简述 5.3迭代器类型详述 5.3.1输入型迭代器 5.3.2输出型迭代器 5.3.3前向迭代器 5.3.4双向迭代器 5.3.5随机存取迭代器 5.3.6vector迭代器的递增和递减 5.4迭代器配接器 5.4.1逆向迭代器 5.4.2插入型迭代器 5.4.3流迭代器 5.5迭代器辅助函数 5.5.1advance()迭代器前进函数 5.5.2distance()迭代器距离 5.5.3iter_swap()交换两个迭代器所指内容 5.6本章 小结 …… 第6章 STL的数值计算 第7章 输入输出流 第8章 异常处理 第9章 通用工具 第10章 语言支持 第11章 检测库详解 第12章 国际化库详解 第13章 仿函数 第14章 配置器 参考文献
版权页: 插图: 7.1.1 Stream对象 1.输入流和输出流对象 C++I/O由stream完成。所谓stream是一条数据“流”,字符序列在其中“川流不息”。按面向对象原则,stream是由某个类别定义出来的具有特定性质的对象。C++流被实现为类模板。std::cout和std::cin的对象是std::ios的派生类的全局实例对象。尽管后面将使用std::ios定义的常量和函数——包括std::ios::beg和std::ios::setprecision(int)。程序主要处理的对象类型均派生自std::ios类。这些类对象调用的成员函数均是在ios类中定义的。 Stream主要包括输出流和输入流。输出操作被解读为“数据流入stream”,输入操作则是“数据流出stream”。还包括一些为标准I/O通道而定义的全局对象。 C++的iostream类库管理了诸多细节。例如,在程序中包含iostream文件将自动创建8个Stream对象(4个用于窄字符,4个用于宽字符): (1) cin对象对应标准输入stream。默认情况下,stream被关联到标准输入设备(键盘)。wcin对象与此类似,处理的是wchar_t类型; (2) cout对象与标准输出stream相对应。默认情况下,这个stream被关联到标准输出设备(显示器)。wcout对象与此类似,处理的是wchar_t类型; (3) cerr对象与标准错误stream相对应,可用于显示错误信息。默认情况下,这个stream被关联到标准输出设备(显示器)。这个stream没有缓冲,意味着信息将被直接发送给屏幕,不会等到缓冲区填满或新的换行符。wcerr对象与此类似,处理的是wchar_t类型; (4) clog对象同样对应标准错误stream。默认情况下,这个stream被关联到标准输出设备(通常为显示器)。这个stream有缓冲。wclog对象与此类似,但处理的是wchar_t类型。 当iostream文件为程序声明一个cout对象时,该对象将包含存储了与输出有关的信息的数据成员,例如:显示数据时使用的字段宽度、小数位数、显示整数时采用的计数方法以及描述用来处理输出流的缓冲区的streambuf对象的地址。cout对象凭借streambuf对象的帮助,管理着流中的字节流。 2.文件流对象 文件流对象是用于文件操作时,程序需要实例化文件流类的对象,文件流类包括3个:ofstream、ifstream和fstream。这3个对象分别支持文件输入、输出以及兼具输入和输出。程序需要在流类的构造函数中包括实参,或者实例化未初始化的文件流对象。 7.1.2 Stream类别 对于不同种类的I/O(输入、输出、文件存取),对于不同的stream classes,其中最重要的是: ·classistream,定义input stream,可用来读取数据: ·class ostream,定义output stream,可用来写出数据; ·class ofstream,实现文件输入与输出。
《C++ STL标准程序库开发指南》编辑推荐:在开发语言中,C++的应用越来越广泛。而C++ STL是标准的C++模板库,是算法和其他一些标准组件的集合,可以说是世界上众多技术人员多年经验的总结。STL的目的是标准化组件,这样就不用重复开发,就可以使用现成的组件,提高了开发效率。STL现在是C++标准的一部分,开发时,不用额外安装插件包之类的东西。《C++ STL标准程序库开发指南》由浅入深地讲解R使用C++ STL虚用程序的开发过程与方法。
无
这本书也还是比较全的,可以一看。
书是正版的。质量很好。STL新手书。对于了解和学习STL是有帮助的。特别是不懂STL的一定要看一看。先会用。发现亚马逊的配送服务越来越好了。非常满意。
我想问问亚马逊,我买的这本书我看了部分发现,中间说的随书附带的有光盘,可是我的光盘呢?我收货的时候没看到,我买的时候还不知道有光盘,请问这个是什么情况呢?
刚拿到书,写的不错!