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,他们提供了极大的帮助。