Modern C++学习笔记
文章平均质量分 79
现代C++学习笔记
班公湖里洗过脚
上马击狂胡,下马草军书
展开
-
现代C++学习笔记——第10章 展望: C++20 简介
C++20 如同 C++11 一样,似乎能够成为一个振奋人心的更新。例如,早在 C++11 时期就跃跃欲试呼声极高却最终落选的 Concept,如今已经箭在弦上。 C++ 组委会在讨论投票最终确定 C++20 有很多提案,诸如 Concepts/Module/Coroutine/Ranges/ 等等。本章我们就来一览 C++20 即将引入的那些重要特性。原创 2021-07-21 23:46:08 · 222 阅读 · 0 评论 -
现代C++学习笔记——第9章 其他杂项
本章介绍的几个特性是从仍未介绍的现代 C++ 新特性里使用频次较靠前的特性了, noexcept 是最为重要的特性,它的一个功能在于能够阻止异常的扩散传播,有效的让编译器最大限度的优化我们的代码。原创 2021-07-20 23:35:10 · 143 阅读 · 0 评论 -
现代C++学习笔记——第8章 文件系统std::filesystem
文件系统库提供了文件系统、路径、常规文件、目录等等相关组件进行操作的相关功能。和正则表达式库类似,他也是最先由 boost 发起,并最终被合并为 C++ 标准的众多库之一。原创 2021-07-19 23:56:28 · 6496 阅读 · 0 评论 -
现代C++学习笔记——第7章 并行与并发
C++11 语言层提供了并发编程的相关支持,本节简单的介绍了 std::thread, std::mutex,std::future 这些并发编程中不可回避的重要工具。除此之外,我们还介绍了 C++11 最重要的几个特性之一的『内存模型』,它们为 C++ 在标准化高性能计算中提供了重要的基础。原创 2021-07-18 17:58:15 · 219 阅读 · 0 评论 -
现代C++学习笔记——第6章 正则表达式
本章介绍正则表达式正则表达式不是 C++ 语言的一部分,这里仅做简单的介绍。正则表达式描述了一种字符串匹配的模式。一般使用正则表达式主要是实现下面三个需求:1. 检查一个串是否包含某种形式的子串;2. 将匹配的子串替换;3. 从某个串中取出符合条件的子串。正则表达式是由普通字符(例如 a 到 z)以及特殊字符组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。原创 2021-07-17 22:55:57 · 402 阅读 · 0 评论 -
现代C++学习笔记——第5章 智能指针与内存管理
在传统 C++ 里我们只好使用 new和 delete 去『记得』对资源进行释放。而 C++11 引入了智能指针的概念,使用了引用计数的想法,让程序员不再需要关心手动释放内存。这些智能指针就包括 std::shared_ptr/std::unique_ptr/std::weak_ptr,使用它们需要包含头文件 <memory>原创 2021-07-16 23:09:41 · 116 阅读 · 0 评论 -
现代C++学习笔记——第4章 容器
本章简单介绍了现代 C++ 中新增的容器,它们的用法和传统 C++ 中已有的容器类似,相对简单,可以根据实际场景丰富的选择需要使用的容器,从而获得更好的性能。std::tuple 虽然有效,但是标准库提供的功能有限,没办法满足运行期索引和迭代的需求,好在我们还有其他的方法可以自行实现。原创 2021-07-15 23:01:18 · 161 阅读 · 0 评论 -
现代C++学习笔记——第3章语言运行期的强化
本章介绍了现代 C++ 中最为重要的几个语言运行时的增强,其中本节中提到的所有特性都是值得掌握的:1. Lambda 表达式2. 函数对象容器 std::function3. 右值引用原创 2021-07-12 19:09:20 · 145 阅读 · 0 评论 -
现代C++学习笔记——第2章 语言可用性的强化
在新版的C++标准中,使用nullptr来替代NULL指针, C++会把NULL和0视为同一各东西,这由编译器决定,有些编译器会将NULL定义为((void*)0),有些则会直接其其定义为0。在C++中是不允许直接将void*隐式转到其他类型的。但如果编译器把NULL定义为((void*)0),就会出现下面这段代码中原创 2021-01-14 20:54:10 · 719 阅读 · 0 评论 -
现代C++学习笔记——第1章 迈向现代C++
第1章迈向现代C++本章分为两节1.1 介绍新版的C++弃用的特性,在使用新标准的开发过程中,应该避免使用这些弃用的特,同时有的已经不支持了比如,现在的C++中,char *str = "const text";这个在C++中已经不支持了,之前使用这种定义常量时就报错。error: C2440: “初始化”: 无法从“const char [11]”转换为“char *”原创 2021-01-11 14:46:57 · 289 阅读 · 0 评论