首页  软件  游戏  图书  电影  电视剧

请输入您要查询的图书:

 

图书 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++ 答主
标签
缩略图
书名 C++实战:核心技术与最佳实践
副书名
原作名
作者 吴咏炜
译者
编者
绘者
出版社 人民邮电出版社
商品编码(ISBN) 9787115657695
开本 16开
页数 344
版次 1
装订
字数
出版时间 2024-12-01
首版时间
印刷时间 2024-12-01
正文语种
读者对象
适用范围
发行范围
发行模式 实体书
首发网站
连载网址
图书大类 教育考试-考试-计算机类
图书小类
重量
CIP核字
中图分类号 TP312.8
丛书名
印张
印次 1
出版地
整理
媒质
用纸
是否注音
影印版本
出版商国别
是否套装
著作权合同登记号
版权提供者
定价
印数
出品方
作品荣誉
主角
配角
其他角色
一句话简介
立意
作品视角
所属系列
文章进度
内容简介
作者简介
目录
文摘
安全警示 适度休息有益身心健康,请勿长期沉迷于阅读小说。
随便看

 

兰台网图书档案馆全面收录古今中外各种图书,详细介绍图书的基本信息及目录、摘要等图书资料。

 

Copyright © 2004-2025 xlantai.com All Rights Reserved
更新时间:2025/5/10 18:04:19