人民邮电出版社有限公司店铺主页二维码
人民邮电出版社有限公司 微信认证
人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍

74.90
运费: ¥ 0.00-20.00
C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品图0
C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品图1
C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品图2
C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品图3
C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品图4
C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品缩略图0 C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品缩略图1 C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品缩略图2 C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品缩略图3 C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍 商品缩略图4

商品详情

书名:C++实战:核心技术与*实践
定价:99.8
ISBN:9787115657695
作者:吴咏炜
版次:第1版
出版时间:2024-12

内容提要:
这是一本面向实战的现代C++指南,由作者结合30余年C++编程经验倾力打造。书中聚焦*日常高频使用的语言特性,重点讲解惯用法(而非罗列语言里的琐碎细节),展示代码示例及其技术原理,旨在帮助大家又快又好地使用C++。 作者精选了对象生存期与RAII、移动语义、标准模板库(STL)、视图、智能指针、错误处理、并发与异步编程等核心主题,深入浅出地剖析语言特性,并针对实际开发中的常见问题提供解决方案。 本书面向C/C++程序员(特别是遇到困难、希望深入理解并优化C++开发的读者),以及其他需要提升C++编程能力的*。



作者简介:
吴咏炜 国内 C++ *、Boolan *技术咨询师,曾任英特尔亚太研发中心*系统架构师,毕业于复旦大学物理系,拥有 30 年 C/C++ 系统级软件开发和架构经验。 目前从事 C++ 相关的技术咨询和培训工作,为华为、大疆等多家公司提供过服务。工作涉及 C/C++ 语言、软件架构、*软件开发、性能优化、代码重用、开源软件等多方面。 开源软件作品包括:mozi、nvwa、libunibreak 等。 专栏或者翻译作品包括:极客时间专栏《现代 C++ 编程实战》(累计学习人数*过 3.5 万人),图书翻译作品《编程大师访谈录》《C++ Core Guidelines 解析》,论文翻译作品《在纷繁多变的世界里茁壮成长:C++ 2006—2020》,等等。

目录:
推荐序 vii
前言 ix
致谢 xiv
绪论 xv

第 1 章 C 和 C++ 基础 1
1.1 C 基础知识 1
1.1.1 代码组织 1
1.1.2 预处理 2
1.1.3 函数 3
1.1.4 语句和表达式 4
1.1.5 对象和变量 5
1.1.6 基础类型 6
1.1.7 指针 7
1.1.8 枚举 7
1.1.9 数组 8
1.1.10 结构体 9
1.1.11 联合体 9
1.2 C++ 基础知识 10
1.2.1 C++ 是 C 的*集吗? 10
1.2.2 引用 12
1.2.3 重载 14
1.2.4 名空间 16
1.2.5 类 17
1.2.6 面向对象编程 23
1.2.7 运行期类型识别 25
1.2.8 异常 25
1.2.9 模板 27
1.2.10 具名转型 28
1.3 小结 29

第 2 章 对象生存期和 RAII 30
2.1 C++ 对象的存储期和生存期 30
2.1.1 静态对象的生存期 30
2.1.2 动态对象的生存期 32
2.1.3 自动对象的生存期 36
2.2 RAII 惯用法 42
2.3 小结 45

第 3 章 值类别和移动语义 46
3.1 引用语义和值语义 46
3.2 值类别 48
3.2.1 左值 48
3.2.2 右值 49
3.3 移动语义 51
3.3.1 提供移动操作的重载 51
3.3.2 移动对代码风格的影响 53
3.3.3 返回值优化 55
3.4 值类别的其他细节 59
3.4.1 右值引用变量的值类别 59
3.4.2 转发引用和*转发* 60
3.5 三法则、五法则和*法则 62
3.6 小结 65

第 4 章 模板和自动类型推导 66
4.1 模板概要 66
4.2 函数模板 67
4.2.1 模板的定义 67
4.2.2 模板的实例化 68
4.2.3 模板参数推导和 auto 自动类型推导 69
4.3 类模板 73
4.3.1 模板的定义 73
4.3.2 模板的显式特化 73
4.3.3 类模板的成员函数和类的成员函数模板 75
4.4 变量模板 76
4.5 别名模板 76
4.6 其他类型推导 77
4.6.1 类模板参数推导 77
4.6.2 decltype 77
4.6.3 后置返回类型声明和返回类型自动推导 78
4.6.4 声明变量和初始化的不同方式* 79
4.6.5 结构化绑定 82
4.7 小结 83

第 5 章 字符串 84
5.1 字符串概述 84
5.2 string 的基本特点 85
5.2.1 类容器特性 85
5.2.2 字符串特性 87
5.3 basic_string 模板 92
5.4 小结 93

第 6 章 函数对象 94
6.1 什么是函数对象 94
6.1.1 函数对象类 94
6.1.2 高阶函数 95
6.1.3 函数的指针和引用 95
6.2 lambda 表达式 96
6.2.1 基本用法和原理 96
6.2.2 捕获 97
6.2.3 泛型 lambda 表达式 100
6.3 使用 function 对象 100
6.4 小结 102

第 7 章 标准容器 103
7.1 标准模板库和容器 103
7.2 序列容器 104
7.2.1 vector 104
7.2.2 deque 111
7.2.3 list 112
7.2.4 forward_list 114
7.2.5 array 115
7.3 关联容器 117
7.3.1 排序问题 117
7.3.2 关联容器的特性 120
7.3.3 通透比较器 124
7.4 无序关联容器 126
7.4.1 哈希函数对象 126
7.4.2 无序关联容器的接口 128
7.4.3 无序关联容器的底层细节 128
7.5 容器适配器 130
7.5.1 queue 130
7.5.2 stack 131
7.5.3 priority_queue 132
7.6 性能说明 133
7.7 小结 133

第 8 章 迭代器 134
8.1 基本概念 134
8.1.1 迭代器的初步示例 134
8.1.2 ostream_range.h 对被输出对象的要求 136
8.2 迭代器的类别 137
8.2.1 迭代器 138
8.2.2 输入迭代器 140
8.2.3 前向迭代器 140
8.2.4 双向迭代器 141
8.2.5 随机访问迭代器 141
8.2.6 连续迭代器 142
8.2.7 输出迭代器 142
8.3 基于范围的 for 循环 143
8.3.1 范围表达式的生存期问题* 146
8.3.2 键–值对容器的遍历 146
8.3.3 哨兵类型* 147
8.4 小结 149

第 9 章 标准算法 150
9.1 算法概述 150
9.2 一些常用算法 150
9.2.1 映射 150
9.2.2 归约 151
9.2.3 过滤 152
9.2.4 生成 154
9.2.5 复制 155
9.2.6 搜索 157
9.2.7 排序 159
9.2.8 其他 160
9.3 并行算法 162
9.4 C++20 的范围算法* 163
9.5 小结 166

第 10 章 视图 167
10.1 视图概述 167
10.2 string_view 167
10.2.1 基本用法 168
10.2.2 视图的生存期问题 169
10.2.3 string_view 和 string 170
10.2.4 string_view 的哈希* 172
10.3 span 172
10.3.1 基本用法 172
10.3.2 一些技术细节 173
10.3.3 gsl::span 的性能问题 175
10.4 C++20 里的视图* 175
10.4.1 映射 176
10.4.2 过滤 176
10.4.3 反转 176
10.4.4 取子元素 177
10.4.5 管道和管道的性能 177
10.4.6 其他视图 178
10.5 小结 179

第 11 章 智能指针 180
11.1 智能指针概述 180
11.2 *所有权的智能指针 unique_ptr 180
11.2.1 基本使用场景和示例 180
11.2.2 一些技术细节 182
11.3 共享所有权的智能指针 shared_ptr 183
11.3.1 基本使用场景和示例 183
11.3.2 弱指针 weak_ptr 184
11.3.3 引用计数的性能问题 185
11.4 智能指针的传递方式 186
11.5 删除器的行为定制 187
11.6 小结 189

第 12 章 现代 C++ 的一些重要改进 190
12.1 类 190
12.1.1 类数据成员的默认初始化 190
12.1.2 override 和 final 191
12.2 静态断言 193
12.3 字面量 194
12.3.1 用户定义字面量 194
12.3.2 二进制字面量 197
12.4 数字分隔符 198
12.5 constexpr 变量和函数* 199
12.5.1 字面类型 200
12.6 枚举类和指定枚举的底层类型 201
12.6.1 byte 类型 202
12.7 多元组 tuple 203
12.7.1 利用 tuple 的快速比较 204
12.8 时间库 chrono 205
12.8.1 C++20 前的 chrono 库 205
12.8.2 C++20 的 chrono 库改进* 208
12.9 随机数库 random 210
12.10 正则表达式库 regex 212
12.11 小结 215

第 13 章 契约和异常 216
13.1 契约式设计 216
13.1.1 契约式设计的优点、应用场景和实现方式 217
13.1.2 先决条件 219
13.1.3 后置条件 222
13.1.4 不变量 224
13.2 异常 225
13.2.1 不使用异常的 C 风格错误处理 226
13.2.2 使用异常的代码示例 229
13.2.3 如何处理异常 231
13.2.4 不用异常的理由 234
13.2.5 不用异常的后果 236
13.3 小结 238

第 14 章 optional/variant 和错误处理 239
14.1 不使用异常的错误处理 239
14.2 optional 240
14.3 variant 242
14.3.1 访问 variant 244
14.4 expected 246
14.5 标准错误码 249
14.5.1 文件系统库里面的错误处理 249
14.5.2 集成自定义错误码 251
14.6 返回值优化问题 253
14.7 小结 255

第 15 章 传递对象的方式 256
15.1 传统的对象传递方式 256
15.2 性能优化的对象传递方式 258
15.2.1 针对移动的优化 258
15.2.2 该不该用值传参? 259
15.2.3 “不可教授”的*性能传参方式* 264
15.2.4 字符串的特殊处理 266
15.3 小结 267

第 16 章 并发编程 268
16.1 并发编程概述 268
16.2 线程和锁 269
16.2.1 线程和锁的基本示例 270
16.2.2 thread 的析构问题 271
16.2.3 数据竞争示例 272
16.2.4 锁的更多细节 273
16.3 通知机制 274
16.4 期值 278
16.4.1 async 和 future 278
16.4.2 promise 和 future 279
16.4.3 packaged_task 和 future 280
16.5 内存序和原子量 281
16.5.1 执行顺序问题 281
16.5.2 获得–释放语义 286
16.5.3 atomic 288
16.6 线程局部对象 292
16.7 线程*的容器? 296
16.7.1 标准容器的线程*性 296
16.7.2 同步访问的模板工具 297
16.7.3 支持并发访问的容器 299
16.8 小结 300

第 17 章 异步编程 301
17.1 异步编程的基本概念 301
17.2 Asio 302
17.2.1 异步执行 302
17.2.2 异步回调 305
17.2.3 同步网络程序 306
17.2.4 异步网络程序 309
17.3 C++20协程 313
17.3.1 使用协程的异步网络程序 313
17.3.2 使用协程的生成器* 316
17.3.3 有栈和无栈协程* 319
17.4 小结 321

第 18 章 探索 C++ 的工具 322
18.1 编译器 322
18.1.1 主流编译器简介 322
18.1.2 优化选项 325
18.1.3 告警选项 326
18.1.4 编译器的其他重要功能 327
18.1.5 标准库的调试模式 328
18.2 Clang 系列工具 329
18.2.1 Clang-Format 329
18.2.2 Clang-Tidy 331
18.2.3 clangd 333
18.3 运行期检查工具 333
18.3.1 valgrind 333
18.3.2 AddressSanitizer(ASan) 333
18.3.3 UndefinedBehaviorSanitizer(UBSan) 334
18.3.4 ThreadSanitizer(TSan) 335
18.4 Compiler Explorer 335
18.5 小结 336

结束语 337
推荐阅读材料 338
索引 340

人民邮电出版社有限公司店铺主页二维码
人民邮电出版社有限公司 微信公众号认证
人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

C++实战:核心技术与*实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

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

2. 点击右上角图标

点击右上角分享图标

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

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

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:renyoushe
人民邮电出版社官方微信公众号

收藏到微信 or 发给朋友

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

2. 点击右上角图标

点击右上角分享图标

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

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