注重体验与质量的电子书资源下载网站
分类于: 互联网 编程语言
简介
C++语言导学(英文版·第2版) 豆 0.0分
资源最后更新于 2020-11-25 04:17:16
作者:Bjarne Stroustrup
出版社:机械工业出版社
出版日期:2019-01
ISBN:9787111615644
文件格式: pdf
简介· · · · · ·
在本书中,C++的创造者Bjarne Stroustrup描述了现代C++语言的构成。这本简洁、自成体系的导论书籍包含C++语言大多数主要特性和标准库组件,当然,也并未深入介绍,而是给予程序员一个有意义的语言概述、一些关键的例子以及起步阶段的实用帮助。
在本书中,作者通过介绍编程风格(例如面向对象编程和泛型编程)引出支持它们的C++特性。从基本特性开始,延伸到更宽范围的进阶主题,包括很多C++17新特性,例如移动语义、一致初始化、lambda表达式、改进的容器、随机数以及并发。本书非常全面,甚至包含一些为C++20提出的扩展,例如概念和模块。本书最后讨论了C++语言的设计和演化。
这本C++导论书籍的主旨不在于教你如何编程(如果出于这一目的,请参阅本作者的《C++程序设计:原理与实践》(原书第2版)(分基础篇、进阶篇),已由机械工业出版社出版),它也...
目录
第1章 基础知识 1
1.1 引言 1
1.2 程序 2
1.3 函数 4
1.4 类型、变量和算术运算 5
1.5 作用域和生命周期 9
1.6 常量 9
1.7 指针、数组和引用 11
1.8 测试 14
1.9 映射到硬件 16
1.10 建议 18
第2章 用户自定义类型 21
2.1 引言 21
2.2 结构 22
2.3 类 23
2.4 联合 25
2.5 枚举 26
2.6 建议 27
第3章 模块化 29
3.1 引言 29
3.2 分别编译 30
3.3 模块(C++20) 32
3.4 名字空间 34
3.5 错误处理 35
3.6 函数参数和返回值 36
3.7 建议 46
第4章 类 47
4.1 引言 47
4.2 具体类型 48
4.3 抽象类型 54
4.4 虚函数 …56
4.5 类层次 …57
4.6 建议 63
第5章 基本操作 65
5.1 引言 65
5.2 拷贝和移动 68
5.3 资源管理 72
5.4 常规操作 74
5.5 建议 77
第6章 模板 79
6.1 引言 79
6.2 参数化类型 79
6.3 参数化操作 84
6.4 模板机制 89
6.5 建议 92
第7章 概念与泛型编程 93
7.1 引言 93
7.2 概念 94
7.3 泛型编程 98
7.4 可变参数模板 100
7.5 模板编译模式 104
7.6 建议 104
第8章 标准库概览 107
8.1 介绍 107
8.2 标准库组件 108
8.3 标准库头文件和名字空间 109
8.4 建议 110
第9章 字符串和正则表达式 111
9.1 介绍 111
9.2 字符串 111
9.3 字符串视图 114
9.4 正则表达式 116
9.5 建议 122
第10章 输入输出 123
10.1 介绍 123
10.2 输出 123
10.3 输入 125
10.4 I/O状态 127
10.5 用户自定义类型的I/O 128
10.6 格式化 129
10.7 文件流 130
10.8 字符串流 130
10.9 C风格I/O 131
10.10 文件系统 132
10.11 建议 136
第11章 容器 137
11.1 介绍 137
11.2 vector 138
11.3 list 142
11.4 map 144
11.5 unordered_map 144
11.6 容器概览 146
11.7 建议 148
第12章 算法 149
12.1 介绍 149
12.2 使用迭代器 150
12.3 迭代器类型 153
12.4 流迭代器 154
12.5 谓词 155
12.6 算法概览 156
12.7 概念(C++20) 157
12.8 容器算法 160
12.9 并行算法 161
12.10 建议 161
第13章 实用工具 163
13.1 引言 163
13.2 资源管理 164
13.3 范围检查:span 168
13.4 特殊容器 170
13.5 替代选择 174
13.6 分配器 178
13.7 时间 179
13.8 函数适配 180
13.9 类型函数 181
13.10 建议 185
第14章 数值 187
14.1 引言 187
14.2 数学函数 188
14.3 数值算法 189
14.4 复数 190
14.5 随机数 191
14.6 向量算术 192
14.7 数值限制 193
14.8 建议 193
第15章 并发 195
15.1 引言 195
15.2 任务和thread 196
15.3 传递参数 197
15.4 返回结果 198
15.5 共享数据 199
15.6 等待事件 200
15.7 任务通信 202
15.8 建议 205
第16章 历史和兼容性 207
16.1 历史 207
16.2 C++特性演化 214
16.3 C/C++兼容性 218
16.4 参考文献 222
16.5 建议 225
Contents
ContentsPreface
1The Basics1
1.1 Introduction........................................ 1
1.2 Programs........................................ 2
1.3 Functions........................................ 4
1.4 Types, Variables, and Arithmetic.......................... 5
1.5 Scopeand Lifetime........................................ 9
1.6 Constants........................................ 9
1.7 Pointers,Arrays, and References.......................... 11
1.8 Tests ........................................14
1.9 Mappingto Hardware ........................................16
1.10 Advice........................................ 18
2User-Defined ypes 21
2.1 Introduction..................................... 21
2.2 Structures........................................ 22
2.3 Classes........................................ 23
2.4 Unions........................................ 25
2.5 Enumerations........................................ 26
2.6 Advice........................................ 27
3Modularity 29
3.1 Introduction........................................ 29
3.2 SeparateCompilation ........................................30
3.3 Modules(C++20) ........................................32
3.4 Namespaces........................................ 34
3.5 ErrorHandling ........................................35
3.6 FunctionArguments and Return Values .....................................36
3.7 Advice........................................ 46
4Classes 47
4.1 Introduction........................................ 47
4.2 ConcreteTypes ........................................48
4.3 AbstractTypes ........................................54
4.4 Virtual Functions........................................ 56
4.5 ClassHierarchies ........................................57
4.7 Advice........................................ 63
5Essential Operations65
5.1 Introduction........................................ 65
5.2 Copyand Move ........................................ 68
5.3 ResourceManagement ........................................72
5.4 Conventional Operations....................................... 74
5.5 Advice........................................ 77
6Templates 79
6.1 Introduction........................................ 79
6.2 Parameterized Types ........................................79
6.3 Parameterized Operations..................................... 84
6.4 Template Mechanisms........................................ 89
6.5 Advice........................................ 92
7Concepts and Generic Programming 93
7.1 Introduction........................................ 93
7.2 Concepts........................................ 94
7.3 GenericProgramming ........................................98
7.4 Variadic Templates ........................................100
7.5 Template Compilation Model............................... 104
7.6 Advice........................................ 104
8Library Overview 107
8.1 Introduction........................................ 107
8.2 Standard-LibraryComponents ..............................108
8.3 Standard-LibraryHeaders and Namespace................................. 109
8.4 Advice........................................ 110
9Strings and Regular Expressions 111
9.1 Introduction........................................ 111
9.2 Strings........................................ 111
9.3 StringViews........................................ 114
9.4 Regular Expressions........................................ 116
9.5 Advice........................................ 122
10 Input and Output123
10.1 Introduction........................................ 123
10.2 Output........................................ 123
10.3 Input........................................ 125
10.4 I/OState ........................................127
10.5 I/Oof User-Defined ypes ....................................128
10.6 Formatting ........................................129
10.7 FileStreams ........................................130
10.8 StringStreams ........................................130
10.9 C-styleI/O ........................................131
10.10 FileSystem ........................................132
10.11 Advice........................................ 136
11 Containers137
11.1 Introduction........................................ 137
11.2vector........................................ 138
11.3list........................................ 142
11.4map........................................ 144
11.5unordered_map........................................ 144
11.6 ContainerOverview........................................ 146
11.7 Advice........................................ 148
12 Algorithms149
12.1 Introduction........................................ 149
12.2 Useof Iterators........................................ 150
12.3 IteratorTypes ........................................153
12.4 StreamIterators ........................................154
12.5 Predicates........................................ 155
12.6 AlgorithmOverview........................................ 156
12.7 Concepts(C++20) ........................................157
12.8 ContainerAlgorithms ........................................160
12.9 Parallel Algorithms........................................ 161
12.10 Advice........................................ 161
13 Utilities163
13.1 Introduction........................................ 163
13.2 ResourceManagement ........................................164
13.3 RangeChecking:span........................................ 168
13.4 SpecializedContainers ........................................170
13.5 Alternatives........................................ 174
13.6 Allocators........................................ 178
13.7 Time ........................................179
13.8 FunctionAdaption ........................................180
13.9 Type Functions........................................ 181
13.10 Advice........................................ 185
14 Numerics187
14.1 Introduction........................................ 187
14.2 MathematicalFunctions ........................................188
14.3 NumericalAlgorithms ........................................189
14.4 ComplexNumbers ........................................190
14.5 RandomNumbers ........................................191
14.6 Vector Arithmetic........................................ 192
14.7 NumericLimits ........................................193
14.8 Advice........................................ 193
15 Concurrency 195
15.1 Introduction........................................ 195
15.2 Tasks andthreads........................................ 196
15.3 Passing Arguments ........................................197
15.4 ReturningResults ........................................198
15.5 SharingData ........................................199
15.6 Waiting for Events ........................................200
15.7 CommunicatingTasks ........................................202
15.8 Advice........................................ 205
16 History and Compatibility207
16.1 History........................................ 207
16.2 C++Feature Evolution ........................................214
16.3 C/C++Compatibility ........................................218
16.4 Bibliography........................................ 222
16.5 Advice........................................ 225
1.1 引言 1
1.2 程序 2
1.3 函数 4
1.4 类型、变量和算术运算 5
1.5 作用域和生命周期 9
1.6 常量 9
1.7 指针、数组和引用 11
1.8 测试 14
1.9 映射到硬件 16
1.10 建议 18
第2章 用户自定义类型 21
2.1 引言 21
2.2 结构 22
2.3 类 23
2.4 联合 25
2.5 枚举 26
2.6 建议 27
第3章 模块化 29
3.1 引言 29
3.2 分别编译 30
3.3 模块(C++20) 32
3.4 名字空间 34
3.5 错误处理 35
3.6 函数参数和返回值 36
3.7 建议 46
第4章 类 47
4.1 引言 47
4.2 具体类型 48
4.3 抽象类型 54
4.4 虚函数 …56
4.5 类层次 …57
4.6 建议 63
第5章 基本操作 65
5.1 引言 65
5.2 拷贝和移动 68
5.3 资源管理 72
5.4 常规操作 74
5.5 建议 77
第6章 模板 79
6.1 引言 79
6.2 参数化类型 79
6.3 参数化操作 84
6.4 模板机制 89
6.5 建议 92
第7章 概念与泛型编程 93
7.1 引言 93
7.2 概念 94
7.3 泛型编程 98
7.4 可变参数模板 100
7.5 模板编译模式 104
7.6 建议 104
第8章 标准库概览 107
8.1 介绍 107
8.2 标准库组件 108
8.3 标准库头文件和名字空间 109
8.4 建议 110
第9章 字符串和正则表达式 111
9.1 介绍 111
9.2 字符串 111
9.3 字符串视图 114
9.4 正则表达式 116
9.5 建议 122
第10章 输入输出 123
10.1 介绍 123
10.2 输出 123
10.3 输入 125
10.4 I/O状态 127
10.5 用户自定义类型的I/O 128
10.6 格式化 129
10.7 文件流 130
10.8 字符串流 130
10.9 C风格I/O 131
10.10 文件系统 132
10.11 建议 136
第11章 容器 137
11.1 介绍 137
11.2 vector 138
11.3 list 142
11.4 map 144
11.5 unordered_map 144
11.6 容器概览 146
11.7 建议 148
第12章 算法 149
12.1 介绍 149
12.2 使用迭代器 150
12.3 迭代器类型 153
12.4 流迭代器 154
12.5 谓词 155
12.6 算法概览 156
12.7 概念(C++20) 157
12.8 容器算法 160
12.9 并行算法 161
12.10 建议 161
第13章 实用工具 163
13.1 引言 163
13.2 资源管理 164
13.3 范围检查:span 168
13.4 特殊容器 170
13.5 替代选择 174
13.6 分配器 178
13.7 时间 179
13.8 函数适配 180
13.9 类型函数 181
13.10 建议 185
第14章 数值 187
14.1 引言 187
14.2 数学函数 188
14.3 数值算法 189
14.4 复数 190
14.5 随机数 191
14.6 向量算术 192
14.7 数值限制 193
14.8 建议 193
第15章 并发 195
15.1 引言 195
15.2 任务和thread 196
15.3 传递参数 197
15.4 返回结果 198
15.5 共享数据 199
15.6 等待事件 200
15.7 任务通信 202
15.8 建议 205
第16章 历史和兼容性 207
16.1 历史 207
16.2 C++特性演化 214
16.3 C/C++兼容性 218
16.4 参考文献 222
16.5 建议 225
Contents
ContentsPreface
1The Basics1
1.1 Introduction........................................ 1
1.2 Programs........................................ 2
1.3 Functions........................................ 4
1.4 Types, Variables, and Arithmetic.......................... 5
1.5 Scopeand Lifetime........................................ 9
1.6 Constants........................................ 9
1.7 Pointers,Arrays, and References.......................... 11
1.8 Tests ........................................14
1.9 Mappingto Hardware ........................................16
1.10 Advice........................................ 18
2User-Defined ypes 21
2.1 Introduction..................................... 21
2.2 Structures........................................ 22
2.3 Classes........................................ 23
2.4 Unions........................................ 25
2.5 Enumerations........................................ 26
2.6 Advice........................................ 27
3Modularity 29
3.1 Introduction........................................ 29
3.2 SeparateCompilation ........................................30
3.3 Modules(C++20) ........................................32
3.4 Namespaces........................................ 34
3.5 ErrorHandling ........................................35
3.6 FunctionArguments and Return Values .....................................36
3.7 Advice........................................ 46
4Classes 47
4.1 Introduction........................................ 47
4.2 ConcreteTypes ........................................48
4.3 AbstractTypes ........................................54
4.4 Virtual Functions........................................ 56
4.5 ClassHierarchies ........................................57
4.7 Advice........................................ 63
5Essential Operations65
5.1 Introduction........................................ 65
5.2 Copyand Move ........................................ 68
5.3 ResourceManagement ........................................72
5.4 Conventional Operations....................................... 74
5.5 Advice........................................ 77
6Templates 79
6.1 Introduction........................................ 79
6.2 Parameterized Types ........................................79
6.3 Parameterized Operations..................................... 84
6.4 Template Mechanisms........................................ 89
6.5 Advice........................................ 92
7Concepts and Generic Programming 93
7.1 Introduction........................................ 93
7.2 Concepts........................................ 94
7.3 GenericProgramming ........................................98
7.4 Variadic Templates ........................................100
7.5 Template Compilation Model............................... 104
7.6 Advice........................................ 104
8Library Overview 107
8.1 Introduction........................................ 107
8.2 Standard-LibraryComponents ..............................108
8.3 Standard-LibraryHeaders and Namespace................................. 109
8.4 Advice........................................ 110
9Strings and Regular Expressions 111
9.1 Introduction........................................ 111
9.2 Strings........................................ 111
9.3 StringViews........................................ 114
9.4 Regular Expressions........................................ 116
9.5 Advice........................................ 122
10 Input and Output123
10.1 Introduction........................................ 123
10.2 Output........................................ 123
10.3 Input........................................ 125
10.4 I/OState ........................................127
10.5 I/Oof User-Defined ypes ....................................128
10.6 Formatting ........................................129
10.7 FileStreams ........................................130
10.8 StringStreams ........................................130
10.9 C-styleI/O ........................................131
10.10 FileSystem ........................................132
10.11 Advice........................................ 136
11 Containers137
11.1 Introduction........................................ 137
11.2vector........................................ 138
11.3list........................................ 142
11.4map........................................ 144
11.5unordered_map........................................ 144
11.6 ContainerOverview........................................ 146
11.7 Advice........................................ 148
12 Algorithms149
12.1 Introduction........................................ 149
12.2 Useof Iterators........................................ 150
12.3 IteratorTypes ........................................153
12.4 StreamIterators ........................................154
12.5 Predicates........................................ 155
12.6 AlgorithmOverview........................................ 156
12.7 Concepts(C++20) ........................................157
12.8 ContainerAlgorithms ........................................160
12.9 Parallel Algorithms........................................ 161
12.10 Advice........................................ 161
13 Utilities163
13.1 Introduction........................................ 163
13.2 ResourceManagement ........................................164
13.3 RangeChecking:span........................................ 168
13.4 SpecializedContainers ........................................170
13.5 Alternatives........................................ 174
13.6 Allocators........................................ 178
13.7 Time ........................................179
13.8 FunctionAdaption ........................................180
13.9 Type Functions........................................ 181
13.10 Advice........................................ 185
14 Numerics187
14.1 Introduction........................................ 187
14.2 MathematicalFunctions ........................................188
14.3 NumericalAlgorithms ........................................189
14.4 ComplexNumbers ........................................190
14.5 RandomNumbers ........................................191
14.6 Vector Arithmetic........................................ 192
14.7 NumericLimits ........................................193
14.8 Advice........................................ 193
15 Concurrency 195
15.1 Introduction........................................ 195
15.2 Tasks andthreads........................................ 196
15.3 Passing Arguments ........................................197
15.4 ReturningResults ........................................198
15.5 SharingData ........................................199
15.6 Waiting for Events ........................................200
15.7 CommunicatingTasks ........................................202
15.8 Advice........................................ 205
16 History and Compatibility207
16.1 History........................................ 207
16.2 C++Feature Evolution ........................................214
16.3 C/C++Compatibility ........................................218
16.4 Bibliography........................................ 222
16.5 Advice........................................ 225