大道至简: C++STL (标准模板库) 精解 作者:闫常友编著出版时间:2015内容简介 众所周知,C++是在C语言之上发展起来的编程语言。几十年的发展历程,C++支持多种编程规范(过程化,面向对象,泛型)。并且C++国际标准不断更新,不断进步,尤其是C++14于2014年8月18日公布。C++的使用领域众广,多用于系统开发,引擎开发,等领域,几十年来一直是最受广大用户喜爱的编程语言之一。C++的STL算法库对常用数据结构和常用算法进行了封装。STL提供的算法对于广大程序员而言是非常便捷的,避免了重复开发,提高效率。回顾几年来C++程序开发在国内的发展情况,对于STL的认识和掌握还存在一些差距。本书献给喜欢C++STL的朋友,当您看见这本书,您应该对C++STL已有了一定的了解,希望继续深造;或者您已经暗下决心来学习它。那么本书将是您最佳的选择。全书共分为十七个篇章及一个附录。第一章主要是介绍相关的基本概念和基础知识,简要介绍了书中后面会用到的一些模版类型。从第二章开始,直至第十七章,逐次介绍了字符串类模版,容器,算法库,迭代器(访问容器的接口),数值计算模版,输入输出类模版,异常处理类模版,通用工具类模版,语言支持类模版,检测类模版,国际化类模版,仿函数,配置器,原子操作类,线性控制类模版,正则表达式类模版。附录部分介绍了几乎所有的传统C库函数中的数学计算类函数,和数值转换类函数。这些函数原本属于C标准函数库所有,实际工作中使用频率较高,特在此附录,以飨广大爱好者使用。学习本书内容需要您已经有了一定的C/C++基础。按照章节的先后顺序,由浅入深地讲解C++STL应用开发技术。本书力求将STL涉及的问题,一一列出讲解,使初学者能够少走些弯路。目录目 录前言内容提要第1章 预备知识及简介1.1 基本概念1.1.1 何谓“命名空间”1.1.2 头文件1.1.3 面向对象的程序设计1.1.4 C++中的声明和定义1.1.5 最简单的C++程序1.1.6 指针1.1.7 函数1.1.8 文件1.1.9 编译和链接1.1.10 程序启动和终止1.1.11 异常处理1.1.12 预处理命令1.1.13 宏1.2 类模板定义1.2.1 类模板实例化1.2.2 类模板的成员函数1.2.3 类模板的静态数据成员1.3 成员模板1.4 友元模板1.5 函数模板1.6 类模板的参数1.7 STL简介1.7.1 STL历史1.7.2 STL组件1.7.3 STL基本结构1.7.4 STL编程概述1.7.5 小结1.8 小结第2章 字符串类模板 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.2 序列式容器3.2.1 vector(向量)类模板3.2.2 list(列表)类模板3.2.3 deque(双端队列)类模板3.3 关联式容器3.3.1 set/multiset(集合)类模板3.3.2 map/multimap(图)类模板3.4 特殊容器用法3.4.1 bitset(位集合)类模板3.4.2 stack(栈)类模板3.4.3 queue(队列)类模板3.4.4 priority queues(优先队列)类模板3.5 小结第4章 STL算法4.1 算法库简介4.2 非修改性算法4.2.1 for each()算法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章 迭代器––访问容器的接口5.1 迭代器及其特性5.2 头文件5.3 迭代器类型详述5.3.1 输入型迭代器5.3.2 输出型迭代器5.3.3 前向型迭代器5.3.4 双向型迭代器5.3.5 随机访问型迭代器5.3.6 vector迭代器的递增和递减5.4 迭代器配接器5.4.1 逆向型迭代器5.4.2 插入型迭代器5.4.3 流型迭代器5.5 迭代器辅助函数5.5.1 前进函数advance()5.5.2 距离函数distance()5.5.3 交换两个迭代器所指内容iter_swap()5.6 小结第6章 数值计算类模板6.1 复数运算6.1.1 一个复数运算例题6.1.2 复数类成员函数6.1.3 复数类运算符6.1.4 复数类运算6.1.5 复数的超越函数运算6.2 数组(向量)运算6.2.1 类valarray6.2.2 数组子集类—类slice和类模板slice_array6.2.3 类gslice和类模板gslice_array6.2.4 类mask_array6.2.5 类indirect_array6.3 通用数值计算6.3.1 求和算法(accumulate()) 6.3.2 内积算法(inner_product())6.3.3 部分和算法(partial_sum())6.3.4 序列相邻差算法(adjacent_difference())6.4 全局性数学函数6.5 小结第7章 输入输出类模板7.1 IOStream简介7.1.1 stream对象7.1.2 stream类别7.1.3 stream操作符7.1.4 操控器7.2 IOStream 基本类和标准IOStream对象7.2.1 头文件7.2.2 标准stream操作符7.2.3 stream状态7.2.4 标准输入和输出函数7.3 格式化7.3.1 格式标志7.3.2 bool类型数据的格式控制7.3.3 详解“字段宽度、填充字符和位置调整” 7.3.4 正记号与大写字符7.3.5 数值进制7.3.6 浮点数输出7.3.7 一般性格式定义7.4 类streambuffer介绍7.4.1 流缓冲区7.4.2 缓冲区迭代器7.4.3 自定义缓冲区7.5 基于字符串的流7.5.1 streambuf类7.5.2 类模板basic_istringstream7.5.3 类模板basic_ostringstream7.5.4 类模板basic_stringstream7.6 基于文件的流7.6.1 文件标识及其使用7.6.2 随机访问7.6.3 4个类模板7.6.4 C库中的文件存取功能概述7.7 小结第8章 异常处理类模板8.1 异常的概念和基本思想8.1.1 异常的概念8.1.2 异常的分类8.1.3 异常的捕捉和处理8.1.4 资源管理8.1.5 异常和效率8.1.6 异常的描述8.1.7 未捕捉的异常8.2 异常类及几个重要问题8.2.1 类exception8.2.2 调用abort()8.2.3 堆栈解退8.2.4 错误代码8.2.5 异常的迷失8.2.6 异常处理的局限性8.3 处理异常详述8.4 异常的特殊处理函数8.5 小结第9章 通用工具类模板(Utility)9.1 通用工具库简介9.1.1 相等比较9.1.2 小于比较9.1.3 复制构造9.1.4 配置器要求9.1.5 运算符9.1.6 对组(pairs) 9.2 动态内存管理9.2.1 默认配置器9.2.2 raw storage iterator9.2.3 temporary Buffers(临时缓冲区) 9.2.4 特定算法9.2.5 C函数库中的内存管理函数9.3 堆的内存分配9.4 辅助功能9.4.1 数值极限9.4.2 较大较小值(最大最小值)9.4.3 两值交换9.4.4 辅助性比较9.4.5 头文件cstdlib和cstddef简介9.5 日期和时间9.5.1 3个类型9.5.2 结构体(tm)9.5.3 相关时间函数9.5.4 时间示例9.6 模板类auto_ptr9.6.1 auto_ptr类构造函数9.6.2 类auto_ptr的成员及转换9.6.3 使用类auto_ptr9.7 小结第10章 语言支持类模板10.1 类型10.2 执行属性10.2.1 类模板numeric_limits及其成员10.2.2 float_round_style和float_denorm_style10.2.3 数值极限的特化10.2.4 C库函数10.2.5 应用举例10.3 程序的启动和终止10.4 动态内存管理10.4.1 内存的分配和释放10.4.2 内存分配错误 上一篇: 大数据丛书 深度学习:方法及应用 下一篇: HTML5 实战宝典 [山西优逸客科技有限公司 著]