Copyright © 2010-2012 Marshall Clow
根据 Boost 软件许可证版本 1.0 发布。(参见随附文件 LICENSE_1_0.txt 或在 https://boost.ac.cn/LICENSE_1_0.txt 复制)
目录
Boost.Algorithm 是一系列通用算法的集合。虽然 Boost 包含许多数据结构库,但并没有一个专门用于通用算法的库。即使这些算法通常很有用,但许多算法往往因为“太小”而不被认为是 Boost 的一部分。
例如,实现 Boyer-Moore 搜索可能需要开发人员花费一周左右的时间,包括测试用例和文档。然而,安排一次评审以将该代码包含到 Boost 中可能需要数月时间,并且会遇到阻力,因为它“太小了”。尽管如此,一个经过测试、评审、文档化的算法库可以大大简化开发人员的生活,这也是本库的目的。
我将征集其他开发人员的投稿,并查阅文献以包含现有算法。例如,Adobe Source Library 包含许多有用的算法,这些算法已经有了文档和测试用例。Knuth 的《计算机程序设计艺术》也充满了算法描述。
我的目标是定期进行算法评审,类似于 Boost 库的评审流程,但处理的代码量更小。
Boost.Algorithm 使用 Boost.Range、Boost.Assert、Boost.Array、Boost.TypeTraits 和 Boost.StaticAssert。
感谢所有评审过本库并提出改进建议的人。特别是 Steven Watanabe 和 Sean Parent 提供了极大的帮助。