返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • [出版社店]C++实战:核心技术与最佳实践 C语言编程C++ Primer C++编程入门计算机程序设计书籍
  • 新商品上架
    • 作者: 吴咏炜著 | 无编
    • 出版社: 人民邮电出版社
    • 出版时间:2024-12
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    江莱图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 吴咏炜著| 无编
    • 出版社:人民邮电出版社
    • 出版时间:2024-12
    • 页数:无
    • ISBN:9787115657695
    • 版权提供:人民邮电出版社


    商品参数


    内容介绍

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

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

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购