出版社:机械工业出版社
年代:2015
定价:49.0
本书作者是C++语言的设计者和最初实现者,写作本书的目的是让有经验的程序员快速了解C++现代语言。书中几乎介绍了C++语言的全部核心功能和重要的标准库组件,以很短的篇幅将C++语言的主要特性呈现给读者,并给出一些关键示例,让读者用很短的时间就能对现代C++的概貌有一个清晰的了解,尤其是关于面向对象编程和泛型编程的知识。本书没有涉及太多C++语言的细节,非常适合想熟悉C++语言最新特性的C/C++程序设计人员以及精通其他高级语言而想了解C++语言特性和优点的人员。
出版者的话
中文版序
译者序
前言
第1章 基础知识 1
1.1 引言 1
1.2 程序 1
1.3 Hello,World! 2
1.4 函数 3
1.5 类型、变量和算术运算 5
1.6 作用域和生命周期 7
1.7 常量 8
1.8 指针、数组和引用 9
1.9 检验 11
1.10 建议 13
第2章 用户自定义类型 15
2.1 引言 15
2.2 结构 15
2.3 类 17
2.4 联合 18
2.5 枚举 19
2.6 建议 20
第3章 模块化 22
3.1 引言 22
3.2 分离编译 23
3.3 命名空间 24
3.4 错误处理 25
3.4.1 异常 26
3.4.2 不变式 27
3.4.3 静态断言 28
3.5 建议 29
第4章 类 30
4.1 引言 30
4.2 具体类型 31
4.2.1 一种算术类型 31
4.2.2 容器 33
4.2.3 初始化容器 34
4.3 抽象类型 36
4.4 虚函数 38
4.5 类层次结构 39
4.5.1 显式覆盖 40
4.5.2 层次结构的益处 41
4.5.3 层次结构漫游 42
4.5.4 避免资源泄漏 43
4.6 拷贝和移动 44
4.6.1 拷贝容器 44
4.6.2 移动容器 45
4.6.3 基本操作 47
4.6.4 资源管理 49
4.6.5 抑制操作 50
4.7 建议 51
第5章 模板 53
5.1 引言 53
5.2 参数化类型 53
5.3 函数模板 55
5.4 概念和泛型编程 56
5.5 函数对象 57
5.6 可变参数模板 59
5.7 别名 60
5.8 模板编译模型 61
5.9 建议 61
第6章 标准库概览 63
6.1 引言 63
6.2 标准库组件 63
6.3 标准库头文件和命名空间 64
6.4 建议 66
第7章 字符串和正则表达式 67
7.1 引言 67
7.2 字符串 67
7.2.1 string的实现 69
7.3 正则表达式 69
7.3.1 搜索 70
7.3.2 正则表达式符号表示 71
7.3.3 迭代器 75
7.4 建议 75
第8章 I/O流 77
8.1 引言 77
8.2 输出 78
8.3 输入 79
8.4 I/O状态 80
8.5 用户自定义类型的I/O 81
8.6 格式化 82
8.7 文件流 83
8.8 字符串流 83
8.9 建议 84
第9章 容器 86
9.1 引言 86
9.2 vector 86
9.2.1 元素 89
9.2.2 范围检查 89
9.3 list 90
9.4 map 91
9.5 unorder_map 92
9.6 容器概述 93
9.7 建议 94
第10章 算法 96
10.1 引言 96
10.2 使用迭代器 97
10.3 迭代器类型 99
10.4 流迭代器 100
10.5 谓词 102
10.6 标准库算法概览 102
10.7 容器算法 103
10.8 建议 104
第11章 实用工具 105
11.1 引言 105
11.2 资源管理 105
11.2.1 unique_ptr和shared_ptr 106
11.3 特殊容器 108
11.3.1 array 109
11.3.2 bitset 111
11.3.3 pair和tuple 111
11.4 时间 113
11.5 函数适配器 113
11.5.1 bind() 113
11.5.2 mem_fn() 114
11.5.3 function 114
11.6 类型函数 115
11.6.1 iterator_traits 116
11.6.2 类型谓词 117
11.7 建议 118
第12章 数值计算 119
12.1 引言 119
12.2 数学函数 119
12.3 数值算法 120
12.4 复数 121
12.5 随机数 121
12.6 向量算术 123
12.7 数值限制 124
12.8 建议 124
第13章 并发 125
13.1 引言 125
13.2 任务和thread 126
13.3 传递参数 126
13.4 返回结果 127
13.5 共享数据 128
13.6 等待事件 129
13.7 任务通信 130
13.7.1 future和promise 131
13.7.2 packaged_task 132
13.7.3 async() 133
13.8 建议 133
第14章 历史和兼容性 135
14.1 历史 135
14.1.1 大事年表 136
14.1.2 早期的C++ 137
14.1.3 ISO C++标准 139
14.2 C++11扩展 140
14.2.1 语言特性 140
14.2.2 标准库组件 141
14.2.3 已弃用特性 142
14.2.4 类型转换 143
14.3 C/C++兼容性 143
14.3.1 C和C++是兄弟 144
14.3.2 兼容性问题 145
14.4 参考文献 147
14.5 建议 149
索引 151
《计算机科学丛书:C++语言导学》作者是C++语言的设计者和实现者,写作本书的目的是让有经验的程序员快速了解C++现代语言。书中几乎介绍了C++语言的全部核心功能和重要的标准库组件,以很短的篇幅将C++语言的主要特性呈现给读者,并给出一些关键示例,让读者用很短的时间就能对现代C++的概貌有一个清晰的了解,尤其是关于面向对象编程和泛型编程的知识。本书没有涉及太多C++语言的细节,非常适合想熟悉C++语言新特性的C/C++程序设计人员以及精通其他高级语言而想了解C++语言特性和优点的人员。
C++11标准使得程序员能以更清晰、简明、直接的方式表达思想,从而编写出更快速和高效的代码。作为C++的设计者和实现者,Bjarne Stroustrup在他的经典著作《C++程序设计语言》中详尽地介绍了C++语言的各种细节及其用法。
在这本中,作者把C++完整参考手册的精华概述部分摘取出来,并且进行必要的扩充和提升,目的是让有经验的程序员在很短时间内就能清晰地了解到构成现代C++语言的关键元素。本书虽薄,结构却清晰完整,作者在书中介绍了C++语言的绝大多数特性以及重要的一些标准库组件。尤其难能可贵的是,虽然受篇幅所限无法对每个知识点展开深入讲解,但依然能够帮助程序员了解语言的全貌,并给出一些关键示例,便于他们更好地学习和使用C++语言。
作者并非孤立地介绍C++的特性,而是将其置于适当的程序设计风格之中,这些风格包括读者熟悉的面向对象程序设计和泛型编程等。本书内容丰富,涵盖的范围极其广泛。从基础知识开始逐渐延展到更多高级主题,并且包含了大量C++11的新语法点,比如移动语义、规范初始化、lambda表达式、高级容器、随机数和并行等。本书最后讨论了C++的设计、历史演变以及扩展。
《计算机科学丛书:C++语言导学》的目的并非教会读者如何编程(学习编程可以参考作者的《C++程序设计原理与实践》),读者也不可能仅靠阅读本书就熟练掌握C++(为此读者可以参考作者的《C++程序设计语言》)。但是,如果你是一个C/C++程序员,并且想熟悉新版本的C++语言,或者你精通其他高级语言,希望了解一下C++语言有何特性和长处,那么本书显然是很好的选择。