您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
C++实战
字数: 445
出版社: 人民邮电
作者: 吴咏炜|
商品条码: 9787115657695
版次: 1
开本: 16开
页数: 344
出版年份: 2024
印次: 1
定价:
¥99.8
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
这是一本面向实战的现代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
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网