网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 C++实战:核心技术与最佳实践
分类 教育考试-考试-计算机类
作者 吴咏炜
出版社 人民邮电出版社
下载
简介
编辑推荐
1.现代C++主线
含C++98/11/14/17/20/23,适合初中级开发者
2.作者背景深厚
专研C++编程30年,助你突破C++痛点与难点
3.关注核心特性
聚焦高频使用的语言特性,重点讲解语言惯用法
4.面向实战开发
针对实际应用场景下的常见问题,提供解决方案
5.讲解通俗易懂
多图多表多代码,内容简单易读,代码方便实现
内容推荐
这是一本面向实战的现代C++指南,由作者结合30余年C++编程经验倾力打造。书中聚焦开发者日常高频使用的语言特性,重点讲解惯用法(而非罗列语言里的琐碎细节),展示代码示例及其技术原理,旨在帮助大家又快又好地使用C++。

作者精选了对象生存期与RAII、移动语义、标准模板库(STL)、视图、智能指针、错误处理、并发与异步编程等核心主题,深入浅出地剖析语言特性,并针对实际开发中的常见问题提供解决方案。
本书面向C/C++程序员(特别是遇到困难、希望深入理解并优化C++开发的读者),以及其他需要提升C++编程能力的开发者。
目录
推荐序\tvii
前言\tix
致谢\txiv
绪论\txv
第 1 章\tC 和 C++ 基础\t1
1.1\tC 基础知识\t1
1.1.1\t代码组织\t1
1.1.2\t预处理\t2
1.1.3\t函数\t3
1.1.4\t语句和表达式\t4
1.1.5\t对象和变量\t5
1.1.6\t基础类型\t6
1.1.7\t指针\t7
1.1.8\t枚举\t7
1.1.9\t数组\t8
1.1.10\t结构体\t9
1.1.11\t联合体\t9
1.2\tC++ 基础知识\t10
1.2.1\tC++ 是 C 的超集吗?\t10
1.2.2\t引用\t12
1.2.3\t重载\t14
1.2.4\t名空间\t16
1.2.5\t类\t17
1.2.6\t面向对象编程\t23
1.2.7\t运行期类型识别\t25
1.2.8\t异常\t25
1.2.9\t模板\t27
1.2.10\t具名转型\t28
1.3\t小结\t29
第 2 章\t对象生存期和 RAII\t30
2.1\tC++ 对象的存储期和生存期\t30
2.1.1\t静态对象的生存期\t30
2.1.2\t动态对象的生存期\t32
2.1.3\t自动对象的生存期\t36
2.2\tRAII 惯用法\t42
2.3\t小结\t45
第 3 章\t值类别和移动语义\t46
3.1\t引用语义和值语义\t46
3.2\t值类别\t48
3.2.1\t左值\t48
3.2.2\t右值\t49
3.3\t移动语义\t51
3.3.1\t提供移动操作的重载\t51
3.3.2\t移动对代码风格的影响\t53
3.3.3\t返回值优化\t55
3.4\t值类别的其他细节\t59
3.4.1\t右值引用变量的值类别\t59
3.4.2\t转发引用和完美转发*\t60
3.5\t三法则、五法则和零法则\t62
3.6\t小结\t65
第 4 章\t模板和自动类型推导\t66
4.1\t模板概要\t66
4.2\t函数模板\t67
4.2.1\t模板的定义\t67
4.2.2\t模板的实例化\t68
4.2.3\t模板参数推导和 auto 自动类型推导\t69
4.3\t类模板\t73
4.3.1\t模板的定义\t73
4.3.2\t模板的显式特化\t73
4.3.3\t类模板的成员函数和类的成员函数模板\t75
4.4\t变量模板\t76
4.5\t别名模板\t76
4.6\t其他类型推导\t77
4.6.1\t类模板参数推导\t77
4.6.2\tdecltype\t77
4.6.3\t后置返回类型声明和返回类型自动推导\t78
4.6.4\t声明变量和初始化的不同方式*\t79
4.6.5\t结构化绑定\t82
4.7\t小结\t83
第 5 章\t字符串\t84
5.1\t字符串概述\t84
5.2\tstring 的基本特点\t85
5.2.1\t类容器特性\t85
5.2.2\t字符串特性\t87
5.3\tbasic_string 模板\t92
5.4\t小结\t93
第 6 章\t函数对象\t94
6.1\t什么是函数对象\t94
6.1.1\t函数对象类\t94
6.1.2\t高阶函数\t95
6.1.3\t函数的指针和引用\t95
6.2\tlambda 表达式\t96
6.2.1\t基本用法和原理\t96
6.2.2\t捕获\t97
6.2.3\t泛型 lambda 表达式\t100
6.3\t使用 function 对象\t100
6.4\t小结\t102
第 7 章\t标准容器\t103
7.1\t标准模板库和容器\t103
7.2\t序列容器\t104
7.2.1\tvector\t104
7.2.2\tdeque\t111
7.2.3\tlist\t112
7.2.4\tforward_list\t114
7.2.5\tarray\t115
7.3\t关联容器\t117
7.3.1\t排序问题\t117
7.3.2\t关联容器的特性\t120
7.3.3\t通透比较器\t124
7.4\t无序关联容器\t126
7.4.1\t哈希函数对象\t126
7.4.2\t无序关联容器的接口\t128
7.4.3\t无序关联容器的底层细节\t128
7.5\t容器适配器\t130
7.5.1\tqueue\t130
7.5.2\tstack\t131
7.5.3\tpriority_queue\t132
7.6\t性能说明\t133
7.7\t小结\t133
第 8 章\t迭代器\t134
8.1\t基本概念\t134
8.1.1\t迭代器的初步示例\t134
8.1.2\tostream_range.h 对被输出对象的要求\t136
8.2\t迭代器的类别\t137
8.2.1\t迭代器\t138
8.2.2\t输入迭代器\t140
8.2.3\t前向迭代器\t140
8.2.4\t双向迭代器\t141
8.2.5\t随机访问迭代器\t141
8.2.6\t连续迭代器\t142
8.2.7\t输出迭代器\t142
8.3\t基于范围的 for 循环\t143
8.3.1\t范围表达式的生存期问题*\t146
8.3.2\t键–值对容器的遍历\t146
8.3.3\t哨兵类型*\t147
8.4\t小结\t149
第 9 章\t标准算法\t150
9.1\t算法概述\t150
9.2\t一些常用算法\t150
9.2.1\t映射\t150
9.2.2\t归约\t151
9.2.3\t过滤\t152
9.2.4\t生成\t154
9.2.5\t复制\t155
9.2.6\t搜索\t157
9.2.7\t排序\t159
9.2.8\t其他\t160
9.3\t并行算法\t162
9.4\tC++20 的范围算法*\t163
9.5\t小结\t166
第 10 章\t视图\t167
10.1\t视图概述\t167
10.2\tstring_view\t167
10.2.1\t基本用法\t168
10.2.2\t视图的生存期问题\t169
10.2.3\tstring_view 和 string\t170
10.2.4\tstring_view 的哈希*\t172
10.3\tspan\t172
10.3.1\t基本用法\t172
10.3.2\t一些技术细节\t173
10.3.3\tgsl::span 的性能问题\t175
10.4\tC++20 里的视图*\t175
10.4.1\t映射\t176
10.4.2\t过滤\t176
10.4.3\t反转\t176
10.4.4\t取子元素\t177
10.4.5\t管道和管道的性能\t177
10.4.6\t其他视图\t178
10.5\t小结\t179
第 11 章\t智能指针\t180
11.1\t智能指针概述\t180
11.2\t专享所有权的智能指针 unique_ptr\t180
11.2.1\t基本使用场景和示例\t180
11.2.2\t一些技术细节\t182
11.3\t共享所有权的智能指针 shared_ptr\t183
11.3.1\t基本使用场景和示例\t183
11.3.2\t弱指针 weak_ptr\t184
11.3.3\t引用计数的性能问题\t185
11.4\t智能指针的传递方式\t186
11.5\t删除器的行为定制\t187
11.6\t小结\t189
第 12 章\t现代 C++ 的一些重要改进\t190
12.1\t类\t190
12.1.1\t类数据成员的默认初始化\t190
12.1.2\toverride 和 final\t191
12.2\t静态断言\t193
12.3\t字面量\t194
12.3.1\t用户定义字面量\t194
12.3.2\t二进制字面量\t197
12.4\t数字分隔符\t198
12.5\tconstexpr 变量和函数*\t199
12.5.1\t字面类型\t200
12.6\t枚举类和指定枚举的底层类型\t201
12.6.1\tbyte 类型\t202
12.7\t多元组 tuple\t203
12.7.1\t利用 tuple 的快速比较\t204
12.8\t时间库 chrono\t205
12.8.1\tC++20 前的 chrono 库\t205
12.8.2\tC++20 的 chrono 库改进*\t208
12.9\t随机数库 random\t210
12.10\t正则表达式库 regex\t212
12.11\t小结\t215
第 13 章\t契约和异常\t216
13.1\t契约式设计\t216
13.1.1\t契约式设计的优点、应用场景和实现方式\t217
13.1.2\t先决条件\t219
13.1.3\t后置条件\t222
13.1.4\t不变量\t224
13.2\t异常\t225
13.2.1\t不使用异常的 C 风格错误处理\t226
13.2.2\t使用异常的代码示例\t229
13.2.3\t如何处理异常\t231
13.2.4\t不用异常的理由\t234
13.2.5\t不用异常的后果\t236
13.3\t小结\t238
第 14 章\toptional/variant 和错误处理\t239
14.1\t不使用异常的错误处理\t239
14.2\toptional\t240
14.3\tvariant\t242
14.3.1\t访问 variant\t244
14.4\texpected\t246
14.5\t标准错误码\t249
14.5.1\t文件系统库里面的错误处理\t249
14.5.2\t集成自定义错误码\t251
14.6\t返回值优化问题\t253
14.7\t小结\t255
第 15 章\t传递对象的方式\t256
15.1\t传统的对象传递方式\t256
15.2\t性能优化的对象传递方式\t258
15.2.1\t针对移动的优化\t258
15.2.2\t该不该用值传参?\t259
15.2.3\t“不可教授”的很好性能传参方式*\t264
15.2.4\t字符串的特殊处理\t266
15.3\t小结\t267
第 16 章\t并发编程\t268
16.1\t并发编程概述\t268
16.2\t线程和锁\t269
16.2.1\t线程和锁的基本示例\t270
16.2.2\tthread 的析构问题\t271
16.2.3\t数据竞争示例\t272
16.2.4\t锁的更多细节\t273
16.3\t通知机制\t274
16.4\t期值\t278
16.4.1\tasync 和 future\t278
16.4.2\tpromise 和 future\t279
16.4.3\tpackaged_task 和 future\t280
16.5\t内存序和原子量\t281
16.5.1\t执行顺序问题\t281
16.5.2\t获得–释放语义\t286
16.5.3\tatomic\t288
16.6\t线程局部对象\t292
16.7\t线程安全的容器?\t296
16.7.1\t标准容器的线程安全性\t296
16.7.2\t同步访问的模板工具\t297
16.7.3\t支持并发访问的容器\t299
16.8\t小结\t300
第 17 章\t异步编程\t301
17.1\t异步编程的基本概念\t301
17.2\tAsio\t302
17.2.1\t异步执行\t302
17.2.2\t异步回调\t305
17.2.3\t同步网络程序\t306
17.2.4\t异步网络程序\t309
17.3\tC++20协程\t313
17.3.1\t使用协程的异步网络程序\t313
17.3.2\t使用协程的生成器*\t316
17.3.3\t有栈和无栈协程*\t319
17.4\t小结\t321
第 18 章\t探索 C++ 的工具\t322
18.1\t编译器\t322
18.1.1\t主流编译器简介\t322
18.1.2\t优化选项\t325
18.1.3\t告警选项\t326
18.1.4\t编译器的其他重要功能\t327
18.1.5\t标准库的调试模式\t328
18.2\tClang 系列工具\t329
18.2.1\tClang-Format\t329
18.2.2\tClang-Tidy\t331
18.2.3\tclangd\t333
18.3\t运行期检查工具\t333
18.3.1\tvalgrind\t333
18.3.2\tAddressSanitizer(ASan)\t333
18.3.3\tUndefinedBehaviorSanitizer(UBSan)\t334
18.3.4\tThreadSanitizer(TSan)\t335
18.4\tCompiler Explorer\t335
18.5\t小结\t336
结束语\t337
推荐阅读材料\t338
索引\t340
书评(媒体评论)
作为一名日常工作使用 C++ 近六年的开发者,书中介绍的许多方法让我深有共鸣。本书的知识点兼具广度和深度,作者从实际应用场景出发,提供了众多很好实践。它非常适合刚入门 C++以及希望进一步提升 C++ 技能的开发者。
——罗能,华为高级工程师、《C++20 高级编程》作者

我就是看吴老师的《现代 C++ 编程实战》专栏成长的——现在这本新书简直就是个“大礼包”,内容多到爆炸,比专栏还要精彩。书中对知识点的讲解都是干货,相信每位读者都能从中学到很多,收获满满。
——程序喵大人,资深 C++ 开发工程师、《C++20 高级编程(第5版)》译者
我把这本新书推荐给仍在使用传统 C++ 的同行。作者以严谨而亲切的语言,在克制的篇幅中涵盖了实战现代 C++ 的核心要点。阅读中我几次发现:“哦,现在可以这样了!”
——杨文波,资深嵌入式 C++ 程序员
《C++ Templates(第 2 版)中文版》《C++ Core Guidelines 解析》译者
C++ 是一门多范式的通用编程语言,既以其高性能和灵活性著称,也因其难学难用而广为人知。作为一位经验丰富的技术专家,吴咏炜老师不仅在 C++ 开发领域建树颇多,还曾参与翻译了多本技术书。我个人有幸与吴老师在这些翻译工作中合作,深感其治学态度之严谨,尤其是在技术细节上的把控,令人折服并受益良多。无论是对C++复杂概念的精准翻译,还是对现代编程理念的深刻理解,都展现出吴老师对技术的热爱与专注。
本书是一本扎根实战的技术书,更是一本充满洞见的实用工具书,体现了吴老师对 C++ 语言的深刻理解与技术追求。希望本书能够帮助开发者在现代 C++ 复杂的技术生态中游刃有余,实现高效而优雅的编程。最后,诚心建议每一位 C++ 开发者,无论是初学者还是有经验的老手,都读读这本书。
——何荣华(墨梵),宝马自驾软件专家、
《C++ Templates(第 2 版)中文版》《C++ Core Guidelines 解析》《C++ 20 高级编程(第5版)》译者

本书作者以其数十年的开发经验和深厚的理论功底,深入探讨了现代 C++ 的核心特性,如智能指针、lambda 表达式、并发编程和异步编程等。同时,针对开发过程中常见的问题,本书提供了切实可行的解决方案和best practice。通过作者的精辟讲解,许多原本复杂难懂的知识点变得清晰明了。这本书不仅是学习和进阶现代 C++ 的良师益友,更是每个追求卓越的程序员都要读的佳作。
——雨乐,广告引擎高级技术专家
现代 C++ 语言历经多次修订,增添了不少新功能与设施。刚接触的开发者往往感叹其卷帙浩繁,一时不知从何处抓起。然而正如“竹高万丈终循节,世事万变皆有道”。引入的概念虽多,但其要解决的问题却总是朴素而简单的,只是像竹子那样,随着时间积累,一节节越来越多、越来越高罢了。很高兴能看到此书问世,带领读者从实战出发,探寻这些概念要解决的问题及其背后的思想,从而更好地掌握现代C++。
——倪文卿(IceBear),知乎 C++ 答主
随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/1/31 20:24:47