电子工业出版社精品店店铺主页二维码
电子工业出版社精品店
微信扫描二维码,访问我们的微信店铺

C++之旅(第3版)

69.00
运费: 免运费
C++之旅(第3版) 商品图0
C++之旅(第3版) 商品图1
C++之旅(第3版) 商品图2
C++之旅(第3版) 商品图3
C++之旅(第3版) 商品图4
C++之旅(第3版) 商品缩略图0 C++之旅(第3版) 商品缩略图1 C++之旅(第3版) 商品缩略图2 C++之旅(第3版) 商品缩略图3 C++之旅(第3版) 商品缩略图4

商品详情

书名:C++之旅(第3版)  
定价:109.0  
ISBN:9787121461248  
作者:(美)Bjarne Stroustrup(本贾尼 斯特劳斯特鲁普)  
版次:*1版  
出版时间:2023-10  

内容提要:  
本书一共19章,以C++20为标准,讲述了*新的现代C++所提供的编程特性。有其他语言编程经验的读者可以从本书中快速了解C++所具备的功能,从而获得对现代C++的更全面认知,以便更好地了解现代C++语言已经发展到的程度。*深程序员可以从本书作者的整体行文风格中感受到他在设计C++特性时的一些考量及侧重点,了解C++这门语言在历史上曾经历过的变迁,以及一部分特性为什么会是现-在这个样子。所以,本书适合的读者:有其他语言编程经验,想要了解C++语言的读者;有传统C++编程经验,想要了解现代C++语言特性的读者;有较丰富编程经验且想了解C++之父在C++设计过程中的一些设计细节与思路的读者。  



作者简介:  

Stroustrup 是 C++ 的设计者和原始实现者,著有《C++程序设计原理与实践》(*2版)和《C++程序设计语言》(第4版)等图书。他目前是哥伦比亚大学的教授,之前曾在 AT&T 贝尔实验室、得克萨斯 A&M 大学和摩根士丹利工作。他获得了无数荣誉,包括美国国家工程院的查尔斯·斯塔克·德雷珀奖,以表彰其开发和改进 C++ 编程语言。Stroustrup 博士是美国国家工程院院士,也是 IEEE、ACM、CHM 和剑桥丘吉尔学院的院士。

译者pansz是一个经验丰富的软件工程师,从小学开始学习编程,中学时期已成为*级程序员,迄今拥有三十年以上编程经验,对包含 C++ 在内的多种主流编程语言有着长期的深入了解,并参与制定了其供职的多家企业的编程规范。




媒体评论:  
C++之父扛鼎之作|全面接纳C++ 20/23新版|带领*越程序员参透设计哲学照见语言未来|知乎轮子哥/蓝色/Boolan创始人李建忠隆重作序力荐  

目录:  

第 1 章 基础......1

1.1 引言 .........1

1.2 程序 .........2

1.2.1 Hello, World!...................................................... 2

1.3 函数 .........4

1.4 类型、变量与运算.............................................6

1.4.1 算术运算 . 7

1.4.2 初始化..... 9

1.5 作用域和生命周期........................................... 10

1.6 常量 ....... 11

1.7 指针、数组和引用........................................... 13

1.7.1 空指针....15

1.8 检验 ....... 16

1.9 映射到硬件 ...................................................... 19

1.9.1 赋值........19

1.9.2 初始化....20

1.10 建议 ..... 21

第 2 章 用户自定义类型.............................................23

2.1 引言 ....... 23

2.2 结构 ....... 24

2.3 类 ........... 25

2.4 枚举 ....... 27

2.5 联合 ....... 29

2.6 建议 ....... 31

第 3 章 模块化 32

3.1 引言 ....... 32

3.2 分离编译 .......................................................... 33

3.2.1 头文件....34

3.2.2 模块........36

3.3 命名空间 .......................................................... 39

3.4 函数参数与返回值........................................... 41

3.4.1 参数传递 42

3.4.2 返回值....43

3.4.3 返回类型推导 ...................................................45

3.4.4 返回类型后置 ...................................................45

3.4.5 结构化绑定 .......................................................46

3.5 建议 ....... 47

第 4 章 错误处理........................................................48

4.1 引言 ....... 48

4.2 异常 ....... 49

4.3 约束条件 .......................................................... 50

4.4 错误处理的其他替代方式............................... 52

4.5 断言 ....... 54

4.5.1 assert() ....55

4.5.2 static_assert........................................................56

4.5.3 noexcept..56

4.6 建议 ....... 57

第 5 章 类........58

5.1 引言 ....... 58

5.1.1 类的概述 59

5.2 具体类型 .......................................................... 59

5.2.1 一种算术类型 ...................................................60

5.2.2 容器........62

5.2.3 容器的初始化 ...................................................64

5.3 抽象类型 .......................................................... 66

5.4 虚函数 ... 69

5.5 类层次结构 ...................................................... 70

5.5.1 类层次结构的益处 ...........................................72

5.5.2 类层次结构导航 ...............................................74

5.5.3 避免资源泄漏 ...................................................75

5.6 建议 ....... 76

第 6 章 基本操作........................................................78

6.1 引言 ....... 78

6.1.1 基本操作 79

6.1.2 转换........81

6.1.3 成员初始值设定项 ...........................................81

6.2 拷贝和移动 ...................................................... 82

6.2.1 拷贝容器 82

6.2.2 移动容器 84

6.3 资源管理 .......................................................... 87

6.4 操作符重载 ...................................................... 88

6.5 常规操作 .......................................................... 89

6.5.1 比较(关系操作符) .......................................90

6.5.2 容器操作 92

6.5.3 迭代器及智能指针 ...........................................92

6.5.4 输入与输出操作 ...............................................93

6.5.5 swap() .....93

6.5.6 hash<> ....93

6.6 用户自定义字面量........................................... 93

6.7 建议 ....... 94

第 7 章 模板....96

7.1 引言 ....... 96

7.2 参数化类型 ...................................................... 97

7.2.1 受限模板参数 ...................................................99

7.2.2 模板值参数 .....................................................100

7.2.3 模板参数推导 .................................................100

7.3 参数化操作 .................................................... 102

7.3.1 模板函数 .........................................................103

7.3.2 函数对象 .........................................................103

7.3.3 匿名函数表达式 .............................................105

7.4 模板机制 ........................................................ 109

7.4.1 模板变量 .........................................................109

7.4.2 别名......110

7.4.3 编译时 if..........................................................111

7.5 建议 ..... 113

第 8 章 概念和泛型编程...........................................114

8.1 引言 ..... 114

8.2 概念 ..... 115

8.2.1 概念的运用 .....................................................116

8.2.2 基于概念的重载 .............................................117

8.2.3 有效代码 .........................................................118

8.2.4 定义概念 .........................................................119

8.2.5 概念与 auto .....................................................122

8.2.6 类型与概念 .....................................................124

8.3 泛型编程 ........................................................ 124

8.3.1 概念的使用 .....................................................124

8.3.2 使用模板实现抽象 .........................................125

8.4 可变参数模板 ................................................ 127

8.4.1 折叠表达式 .....................................................128

8.4.2 *美转发参数 .................................................129

8.5 模板编译模型 ................................................ 130

8.6 建议 ..... 131

第 9 章 标准库 .........................................................132

9.1 引言 ..... 132

9.2 标准库组件 .................................................... 133

9.3 标准库的组织 ................................................ 134

9.3.1 命名空间 .........................................................134

9.3.2 ranges 命名空间..............................................135

9.3.3 模块......136

9.3.4 头文件..136

9.4 建议 ..... 138

第 10 章 字符串和正则表达式..................................139

10.1 引言 ... 139

10.2 字符串 .......................................................... 139

10.2.1 string 的实现 .................................................142

10.3 字符串视图 .................................................. 142

10.4 正则表达式 .................................................. 144

10.4.1 搜索....145

10.4.2 正则表达式的符号表示................................146

10.4.3 迭代器151

10.5 建议 ... 151

第 11 章 输入和输出 ................................................153

11.1 引言 ... 153

11.2 输出 ... 154

11.3 输入 ... 156

11.4 I/O 状态 ........................................................ 157

11.5 用户自定义类型的 I/O ................................ 158

11.6 输出格式化 .................................................. 159

11.6.1 流式格式化 ...................................................160

11.6.2 printf()风格的格式化....................................161

11.7 流 ....... 164

11.7.1 标准流164

11.7.2 文件流165

11.7.3 字符串流 .......................................................165

11.7.4 内存流166

11.7.5 同步流167

11.8 C 风格的 I/O................................................. 168

11.9 文件系统 ...................................................... 168

11.9.1 路径....168

11.9.2 文件和目录 ...................................................171

11.10 建议 . 172

第 12 章 容器174

12.1 引言 ... 174

12.2 vector . 175

12.2.1 元素....178

12.2.2 范围检查 .......................................................178

12.3 list ...... 180

12.4 forward_list................................................... 181

12.5 map .... 182

12.6 unordered_map ............................................. 183

12.7 分配器 .......................................................... 184

12.8 容器概述 ...................................................... 186

12.9 建议 ... 188

第 13 章 算法190

13.1 引言 ... 190

13.2 使用迭代器 .................................................. 192

13.3 迭代器类型 .................................................. 195

13.3.1 流迭代器 .......................................................196

13.4 使用谓词 ...................................................... 199

13.5 标准库算法概览 .......................................... 199

13.6 并行算法 ...................................................... 201

13.7 建议 ... 202

第 14 章 范围203

14.1 引言 ... 203

14.2 视图 ... 204

14.3 生成器 .......................................................... 206

14.4 管道 ... 207

14.5 概念概述 ...................................................... 208

14.5.1 类型概念 .......................................................209

14.5.2 迭代器概念 ...................................................211

14.5.3 范围概念 .......................................................212

14.6 建议 ... 213

第 15 章 指针和容器 ................................................214

15.1 引言 ... 214

15.2 指针类型 ...................................................... 215

15.2.1 unique_ptr 及 shared_ptr................................216

15.2.2 span.....219

15.3 容器 ... 221

15.3.1 array....222

15.3.2 bitset ...224

15.3.3 pair......225

15.3.4 tuple ....227

15.4 可变类型容器 .............................................. 229

15.4.1 variant.229

15.4.2 optional..........................................................231

15.4.3 any ......232

15.5 建议 ... 233

第 16 章 实用工具....................................................234

16.1 引言 ... 234

16.2 时间 ... 235

16.2.1 时钟....235

16.2.2 日历....236

16.2.3 时区....237

16.3 函数适配 ...................................................... 237

16.3.1 匿名函数作为适配器 ...................................238

16.3.2 mem_fn() .......................................................238

16.3.3 function..........................................................238

16.4 类型函数 ...................................................... 239

16.4.1 类型谓词 .......................................................240

16.4.2 条件属性 .......................................................242

16.4.3 类型生成器 ...................................................242

16.4.4 关联类型 .......................................................243

16.5 source_location ............................................. 244

16.6 move()和 forward()....................................... 244

16.7 位操作 .......................................................... 246

16.8 退出程序 ...................................................... 247

16.9 建议 ... 248

第 17 章 数值计算....................................................249

17.1 引言 ... 249

17.2 数学函数 ...................................................... 250

17.3 数值计算算法 .............................................. 251

17.3.1 并行数值算法 ...............................................251

17.4 复数 ... 252

17.5 随机数 .......................................................... 253

17.6 向量算术 ...................................................... 255

17.7 数值界限 ...................................................... 256

17.8 类型别名 ...................................................... 256

17.9 数学常数 ...................................................... 256

17.10 建议 . 257

第 18 章 并发259

18.1 引言 ... 259

18.2 任务和 thread ............................................... 260

18.2.1 传递参数 .......................................................262

18.2.2 返回结果 .......................................................262

18.3 共享数据 ...................................................... 263

18.3.1 mutex 和锁 ....................................................263

18.3.2 原子量265

18.4 等待事件 ...................................................... 266

18.5 任务间通信 .................................................. 268

18.5.1 future 和 promise ...........................................268

18.5.2 packaged_task................................................269

18.5.3 async() 270

18.5.4 停止 thread ....................................................271

18.6 协程 ... 273

18.6.1 协作式多任务 ...............................................274

18.7 建议 ... 277

第 19 章 历史和兼容性.............................................279

19.1 历史 ... 279

19.1.1 大事年表 .......................................................280

19.1.2 早期的 C++ ...................................................281

19.1.3 ISO C++标准.................................................284

19.1.4 标准与编程风格 ...........................................286

19.1.5 C++的使用....................................................287

19.1.6 C++模型........................................................287

19.2 C++特性演化 ............................................... 288

19.2.1 C++11 语言特性 ...........................................288

19.2.2 C++14 语言特性 ...........................................289

19.2.3 C++17 语言特性 ...........................................290

19.2.4 C++20 语言特性 ...........................................290

19.2.5 C++11 标准库组件 .......................................291

19.2.6 C++14 标准库组件 .......................................292

19.2.7 C++17 标准库组件 .......................................292

19.2.8 C++20 标准库组件 .......................................292

19.2.9 移除或弃用的特性 .......................................293

19.3 C/C++兼容性 ............................................... 294

19.3.1 C 与 C++是兄弟............................................294

19.3.2 兼容性问题 ...................................................295

19.4 参考文献 ...................................................... 298

19.5 建议 ... 301

附录 A std 模块........................................................303


电子工业出版社精品店店铺主页二维码
电子工业出版社精品店
扫描二维码,访问我们的微信店铺

C++之旅(第3版)

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏