第8章: 算法

English

概述

本章介绍现代 C++ 中的算法。算法是作用于某个元素 范围的可复用操作。不必手工编写循环,你可以用一次 函数调用对整批容器进行排序、查找、计数、复制或变换。

目前介绍过的所有容器—— ::fast_io::vector、 ::fast_io::string、 ::fast_io::array、 ::fast_io::span、 ::fast_io::string_view、 ::fast_io::cstring_view、 ::fast_io::index_span 以及 C 风格数组—— 都是连续范围。算法可以自然地作用于它们。

本章聚焦于算法背后的结构:它们如何作用于范围,范围与迭代器类别 如何决定算法能做什么,以及投影如何让算法作用于派生值。 后面的小节将介绍典型算法,以及用于描述其性能的数学 模型。

本书避免使用“零开销”和 “零成本”这两个术语。脱离上下文,这些说法毫无意义。 它们忽略了真实成本,例如二进制体积、内存占用、缓存行为、 网络传输、更新延迟,以及人的复杂度。

目录