[编程开发] 82页《现代C++教程》:高速上手C++ 11/14/17/20

[复制链接]
xiaoliang 发表于 2023-10-3 19:18:49|来自:中国 | 显示全部楼层 |阅读模式
C++ 是一门古老又新颖的语言,现代C++ 具备哪些新特性呢?这本书带你了解。
机器之心报道,编辑:陈萍。
C++ 自发明以来,经历了多次修订,每一次修订都为C++ 增加了新的特性并作了一些修改。

纵观C++ 的发展史,从 C++98 的出现到 C++11 的正式定稿经历了长达十年多之久的积累。C++14/17 则是作为对 C++11 的重要补充和优化,而C++20 将这门语言领进了现代化的大门,所有这些新标准中扩充的特性,给 C++ 这门语言注入了新的活力。

现代 C++ (指 C++11/14/17/20) 的大量特性使得整个 C++ 语言更加现代化。现代 C++ 不仅仅增强了 C++ 语言自身的可用性,auto 关键字语义的修改使得我们更加有信心来操控极度复杂的模板类型。同时还对语言运行期进行了大量的强化,Lambda 表达式的出现让 C++ 具有了匿名函数的闭包特性,而这一特性在现代的编程语言(诸如 Python/Swift/... )中已经司空见惯,右值引用的出现解决了 C++ 长期以来被人诟病的临时对象效率问题等等。

本文要介绍的这本书就是关于现代C++ 的。相比于传统的C++,现代C++ 具有哪些新特性呢?



目标读者
这本书假定读者已经熟悉了传统 C++ ,至少在阅读传统 C++ 代码上不具备任何困难。换言之,那些长期使用传统 C++进行编码的人、渴望在短时间内迅速了解现代 C++特性的人非常适合阅读本书;
本书一定程度上介绍了一些现代 C++ 的黑魔法,但这些魔法毕竟有限,不适合希望进阶学习现代 C++ 的读者,本书的定位系现代 C++ 的快速上手。当然,希望进阶学习的读者可以使用本书来回顾并检验自己对现代 C++的熟悉度。
书籍简介
这本书有中英文两个版本,包含10个章节。每个章节中都有大量的代码,该书作者也提供了代码链接,所有代码按章节组织,文件夹名称为章节序号。此外,每章最后还加入了少量难度极小的习题,用于检验读者能否混合运用当前章节中的知识点,同样地,该书作者也提供了习题答案链接。

中文版链接:https://changkun.de/modern-cpp/pdf/modern-cpp-tutorial-zh-cn.pdf
英文版链接:https://changkun.de/modern-cpp/pdf/modern-cpp-tutorial-en-us.pdf
书籍代码链接:https://changkun.de/modern-cpp/code/
习题解答链接:https://changkun.de/modern-cpp/exercises/

章节目录


第1章:主要介绍了从 C++11 开始,C++ 标准库中被弃用的主要特性,此外还介绍了C++ 与C的兼容性。
第2章:介绍了语言可用性的强化,主要内容包括常量、变量及其初始化、类型推导、控制流、模板以及面向对象。
第3章:语言运行期的强化,主要介绍了Lambda表达式、函数对象包装器、右值引用。
第4章:简单介绍了现代 C++ 中新增的容器,包括线性容器、无序容器以及元组。它们的用法和传统 C++ 中已有的容器类似,相对简单,可以根据实际场景选择需要使用的容器,获得更好的性能。
第5章:介绍了智能指针与内存管理,包括RAII 与引用计数以及指针std::shared_ptr、std::unique_ptr、std::weak_ptr。
第6章:简单介绍了正则表达式,然后根据使用正则表达式的主要需求,通过一个实际的例子介绍了正则表达式库的使用。
第7章:主要介绍了std::thread、std::mutex、std::future这些并发编程中不可回避的重要工具。除此之外,还介绍了 C++11 最重要的几个特性之一「内存模型」, 它们为 C++ 在标准化高性能计算中提供了重要的基础。
第8章:文件系统。该库提供了文件系统、路径、常规文件、目录等相关组件进行操作的相关功能。
第9章:介绍了C++11 的几个特性,包括新类型、noexcept的装饰和操作、字面量以及内存对齐。这几个特性是仍未介绍的现代 C++ 新特性里使用频次较靠前的特性,其中noexcept是最为重要的特性,它的功能在于阻止异常的扩散传播,有效地使编译器最大限度地优化代码。
第10章:对C++20 进行了展望。
目前,这本书已同步上线GitHub,并在短时间内获得7.1k星。最近更新时间为2020年10月3日,之后可能会有新内容更新。获取最新内容,请查看GitHub:
https://github.com/changkun/modern-cpp-tutorial


作者介绍
本书作者欧长坤2012年就读于西南民族大学计算机科学专业;2015年,作为交换生来到德国学习人机交互(HCI);2016年,获得工程学学士学位,进入慕尼黑LMU攻读HCI硕士学位;2018年,就读于慕尼黑LMU,获得了与HCI并行学位的计算机科学硕士学位;2019年,获得人机交互和计算机科学两个平行学位的理学硕士学位,并开始在慕尼黑LMU担任博士研究生的研究助理。
其主要研究方向为计算机图形学、机器学习、系统编程以及人机交互,擅长C++、JavaScript、Python等编程语言。
公开发表的学术研究包括:




参考链接:https://changkun.de/modern-cpp/
全部回复16 显示全部楼层
yejianqiu 发表于 2023-10-3 19:19:07|来自:中国 | 显示全部楼层
没人评论?
寻找机会 发表于 2023-10-3 19:19:30|来自:中国 | 显示全部楼层
收藏一下,主业JAVA,副业golang,偶尔用下c++
KU123456789 发表于 2023-10-3 19:20:23|来自:中国 | 显示全部楼层
看目录感觉很多1x的内容都没有啊。。。
hda 发表于 2023-10-3 19:20:52|来自:中国 | 显示全部楼层
原文tutorial还是比较准,这只是一个指南,告诉你有什么。这些大题目,分开写书都可以,十来页也就是目录。
leon30802002 发表于 2023-10-3 19:21:12|来自:中国 | 显示全部楼层
这本书的一些点和 effective modern c++ 有些重合。和楼上说的一样,想通过这本书学会 c++ 是绝对不行的,但是作为一个 tutorial,了解一下现代 c++(11 以及之后) ,还是非常不错的。整本书文字表达清晰,同时代码示例也都可以运行与调试。整体好评。
让爱飞翔 发表于 2023-10-3 19:21:43|来自:中国 | 显示全部楼层
出版了吗?
金迅网络 发表于 2023-10-3 19:22:29|来自:中国 | 显示全部楼层
及时。正想看
cdra 发表于 2023-10-3 19:23:10|来自:中国 | 显示全部楼层
封面眼熟,这不是奥莱利么?
design8 发表于 2023-10-3 19:23:36|来自:中国 | 显示全部楼层
好不容易有个中国人,写的书还是英文版。。。
12下一页
发帖

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则