新書推薦:
《
跟着渤海小吏读历史:大唐气象(全三册)
》
售價:NT$
989.0
《
心智的构建:大脑如何创造我们的精神世界
》
售價:NT$
352.0
《
美国小史(揭秘“美国何以成为美国”,理解美国的经典入门读物)
》
售價:NT$
352.0
《
中国古代北方民族史丛书——东胡史
》
售價:NT$
576.0
《
巨人传(插图珍藏本)
》
售價:NT$
3289.0
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:NT$
332.0
《
偿还:债务与财富的阴暗面
》
售價:NT$
347.0
《
清华大学藏战国竹简校释(壹):《命训》诸篇
》
售價:NT$
408.0
|
編輯推薦: |
适读人群 :1.专业工作者:C++程序员,C++高级程序员;2.C++爱好者
如果只读一本高级C++书籍,相信所有读过的程序员都会毫不犹豫选择本书,尤其是老手;
既可用来理解C++规则背后的原理,也可用其新语言特性与标准库来快速构建健壮程序;
采用页码全面呈现大量交叉引用及详尽索引,新式辅学设置与课后操练用于避开陷阱、巩固良法。
|
內容簡介: |
众所周知,C++是在C语言之上发展起来的编程语言。几十年的发展历程,C++支持多种编程规范(过程化,面向对象,泛型)。并且C++国际标准不断更新,不断进步,尤其是C++14于2014年8月18日公布。C++的使用领域众广,多用于系统开发,引擎开发,等领域,几十年来一直是受广大用户喜爱的编程语言之一。C++的STL算法库对常用数据结构和常用算法进行了封装。STL提供的算法对于广大程序员而言是非常便捷的,避免了重复开发,提高效率。回顾几年来C++程序开发在国内的发展情况,对于STL的认识和掌握还存在一些差距。本书献给喜欢C++STL的朋友,当您看见这本书,您应该对C++STL已有了一定的了解,希望继续深造;或者您已经暗下决心来学习它。那么本书将是您佳的选择。全书共分为十七个篇章及一个附录。章主要是介绍相关的基本概念和基础知识,简要介绍了书中后面会用到的一些模版类型。从第二章开始,直至第十七章,逐次介绍了字符串类模版,容器,算法库,迭代器(访问容器的接口),数值计算模版,输入输出类模版,异常处理类模版,通用工具类模版,语言支持类模版,检测类模版,国际化类模版,仿函数,配置器,原子操作类,线性控制类模版,正则表达式类模版。附录部分介绍了几乎所有的传统C库函数中的数学计算类函数,和数值转换类函数。这些函数原本属于C标准函数库所有,实际工作中使用频率较高,特在此附录,以飨广大爱好者使用。学习本书内容需要您已经有了一定的CC++基础。按照章节的先后顺序,由浅入深地讲解C++STL应用开发技术。本书力求将STL涉及的问题,一一列出讲解,使初学者能够少走些弯路。
|
關於作者: |
闫常友,博士后,高级工程师,电力系统及其自动专业,九三学社社员,IEEE计算机协会会员,热爱计算机语言和软件开发,尤其对CC++系列有独到的见解和深刻认识。对计算机语言的长期使用和实践,积累了些许的体会,抛砖引玉,写出来供大家斟酌。希望对C++程序员提升开发能力有所帮助。已出版书籍:《跟我学VisualC++6.0》,《不要重复发明轮子C++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 字符串IO操作
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 setmultiset(集合)类模板
3.3.2 mapmultimap(图)类模板
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 头文件<iterator>
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 类valarray
6.2.2 数组子集类—类slice和类模板slice_array
6.2.3 类gslice和类模板gslice_array
6.2.4 类mask_array
6.2.5 类indirect_array
6.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_istringstream
7.5.3 类模板basic_ostringstream
7.5.4 类模板basic_stringstream
7.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 类exception
8.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 iterator
9.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_ptr
9.6.1 auto_ptr类构造函数
9.6.2 类auto_ptr的成员及转换
9.6.3 使用类auto_ptr
9.7 小结
第10章 语言支持类模板
10.1 类型
10.2 执行属性
10.2.1 类模板numeric_limits及其成员
10.2.2 float_round_style和float_denorm_style
10.2.3 数值极限的特化
10.2.4 C库函数
10.2.5 应用举例
10.3 程序的启动和终止
10.4 动态内存管理
10.4.1 内存的分配和释放
10.4.2 内存分配错误
10.4.3 应用举例
10.5 类型标识符
10.5.1 类type_info
10.5.2 类bad_cast
10.5.3 类bad_typeid
10.5.4 操作符typeid
10.5.5 操作符dynamic_cast操作符
10.5.6 应用举例
10.6 异常处理
10.6.1 类exception
10.6.2 特殊异常处理
10.6.3 异常终止
10.6.4 未捕获异常(uncaught_exception)
10.6.5 应用举例
10.7 其他运行支持
10.7.1 概述
10.7.2 应用举例
10.8 小结
第11章 检测类模板详解
11.1 异常类
11.1.1 类logic_error
11.1.2 类domain_error
11.1.3 类invalid_argument
11.1.4 类length_error
11.1.5 类out_of_range
11.1.6 类runtime_error
11.1.7 类range_error
11.1.8 类overflow_error
11.1.9 类underflow_error(下溢出)
11.2 断言
11.3 错误编码
11.4 小结
第十二章 国际化类模板详解
12.1 国际化元素
12.2 多种字符编码
12.2.1 宽字符和多字节文本
12.2.2 字符特性
12.2.3 特殊字符国际化
12.3 类locale
12.3.1 类locale概述
12.3.2 类locale的facets
12.3.3 区域表示和混合区域表示
12.3.4 流和区域
12.3.5 刻面的处理
12.4 标准locale的分类
12.4.1 类ctype
12.4.2 数值类的locale类
12.4.3 刻面numeric punctuation
12.4.4 模版类collate
12.4.5 类time
12.4.6 类monetary
12.4.7 类message retrieval
12.4.8 Program-defined facets
12.4.9 C库locale
12.5 细述使用刻面
12.5.1 数值的格式化
12.5.2 时间日期格式化
12.5.3 货币符号的格式化
12.5.4 字符的分类和转换
12.5.5 字符串校勘
12.5.6 信息国际化
12.6 小结
第13章 仿函数
13.1 仿函数的概念
13.1.1 仿函数的概念
13.1.2 仿函数的作用
13.2 预定义仿函数
13.3 辅助用仿函数
13.3.1 一元组合函数配接器
13.3.2 二元组合函数配接器
13.4 关系仿函数
13.4.1 等于(equal_to<type>())
13.4.2 不等于(not_equal_to<type>())
13.4.3 小于(less<type>())
13.4.4 大于(greater<type>())
13.4.5 大于等于(greater _equal)和小于等于(less_equal)
13.5 逻辑仿函数
13.5.1 谓词
13.5.2 逻辑仿函数
13.6 算术仿函数
13.6.1 加减乘除仿函数
13.6.2 “求余”仿函数和“求反”仿函数
13.7 其他类型的仿函数
13.7.1 证和映射
13.7.2 仿函数hash和subtractive_rng
13.8 适配器
13.8.1 成员函数适配器
13.8.2 其他适配器
13.9 小结
第14章 配置器详解
14.1 使用配置器
14.2 C++标准程序库的默认配置器(标准配置器)
14.3 自定义配置器
14.4 配置类的详细讨论
14.4.1 型别
14.4.2 配置类的成员函数
14.4.3 广义配置器
14.4.4 动态存储
14.4.5 C风格的分配
14.5 未初始化的内存
14.6 配置器举例
第15章 原子操作类模版
15.1 头文件<atomic>简介
15.1.1 无锁属性
15.1.2 3个模板
15.1.3 原子模板的常规操作
15.1.4 头文件中的模板函数及算术运算符
15.1.5 原子类型atomic_flag
15.2 顺序及一致性
15.3 原子操作
15.3.1 模板类atomic
15.3.2 针对整型数据的特化模板
15.3.3 针对指针的特化模板
15.4 小结
第16章 线程控制类模版
16.1 要求和性能
16.1.1 异常
16.1.2 本地句柄
16.1.3 可锁定类型
16.2 线程类
16.2.1 线程类的成员变量id
16.2.2 线程类的成员函数
16.2.3 命名空间this_thread
16.2.4 线程示例
16.3 互斥
16.3.1 mutex模版类
16.3.2 lock模版类
16.3.3 call_once
16.4 条件变量
16.4.1 类condition_variable
16.4.2 类condition_variable_any
16.5 模板类future
16.5.1 模板类future_error,future_errc和future_category以及共享状态
16.5.2 模板类promise
16.5.3 模板类future
16.5.4 模板类shared_future
16.5.5 仿函数asyn
16.5.6 模板类packaged_task
16.6 小结
第17章 正则表达式
17.1 定义及要求
17.2 类模板basic_regex
17.2.1 类模板basic_regex的声明
17.2.2 名称空间std::regex_constants
17.2.3 类regex_error
17.2.4 类模板regex_traits
17.2.5 类basic_regex的使用
17.3 类模板sub_match和match_results
17.3.1 类模板sub_match
17.3.2 类模板match_results
17.4 正则表达式相关的3种算法
17.4.1 正则匹配算法regex_match
17.4.2 正则搜索算法regex_search
17.4.3 正则替换算法regex_replace
17.5 正则表达式的迭代器
17.5.1 迭代器regex_iterator
17.5.2 迭代器regex_token_iterator
17.6 小结
附录
附录A 数学函数
A.1 数学函数库中的宏
A.2 浮点计算减法协议开关
A.3 数学库中的宏函数
A.4 三角函数和反三角函数
A.5 指数和对数函数
A.6 幂函数和绝对值函数
A.7 误差和gamma函数
A.8 近似取整函数
A.9 求余函数
A.10 操作处理函数
A.11 最大值、最小值和正差函数
A.12 浮点乘加运算
A.13 比较函数(宏)
附录B 数据类型转换
B.1 字符转整数函数(atoi())
B.2 字符型转换浮点型函数(atof())
B.3 整型数转字符串(itoa()、ltoa()和ultoa())
B.4 浮点数转换字符串函数
|
|