C++17 详解 25 —标准库的其它变动
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
14. STL 其它改动
14.1 std::byte
类型安全的字节表示,不是数值型值。
定义:
1 | enum class byte : unsigned char {} ; // in <cstddef> |
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
类型安全的字节表示,不是数值型值。
定义:
1 | enum class byte : unsigned char {} ; // in <cstddef> |
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
不止线程
除使用多线程外,还可以通过 CPU 或 GPU 的向量指令集进行加速。
CPU 中此类方法统称 SIMD — Single Instruction Multiple Data,即单指令多数据。常见的实现有 AVX256、AVX512、NEON。
GPU 中并行计算更碎片化,大多是跟硬件绑定,比如 NVIDIA 的 CUDA,Intel 的 TBB。也存在一些硬件无关的并行库,比如 OPENCL、OPENGL、OPENMP。
C++17 在这个方向上迈出了一小步:它解锁了标准库中算法的自动向量化/自动并行化。
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
头文件:
1 |
std::filesystem 是一个模块,同时也是一个命名空间。核心元素包括:
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
C++17 从两方面更新了 std::search
译注:执行策略是 STL 算法通用的更新特性,后边有专门的一章讲解,所以本章只介绍了 searcher。
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
两类函数:
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
头文件:
1 |
string_view 是 string 的“视图”。它不拥有 string,也不会复制其内容,但你却可以通过 string_view 进行一些 string 相关的操作,从而避免不必要的复制。
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
std::optional 可以表示一个二态值:空值、非空值;
std::variant 表示一个指定类型集合内的类型;
std::any 更进一步,它可以存储任何类型。
综合用例:
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
variant 是一种类型安全的 union。
头文件:
1 |
综合应用示例:
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
std::optional 可表达可空类型。
头文件:
1 |
本文为 《C++17 in detail》 一书的中文渣中渣译文,不足之处还望指正。
翻译太特么累人了……剩余部分还是只做摘要翻译吧。
本部分你将学到:
译注:关于并行算法,我之前已经吐槽过了。结论是不能用,不必期许过深。