一、说明
Boost.MinMax 提供了一种算法,仅使用一次函数调用即可找到两个值的最小值和最大值,这比调用 std::min() 和 std::max() 更有效。
Boost.MinMax 是 C++11 的一部分。如果您的开发环境支持 C++11,您可以在头文件算法中找到来自此 Boost 库的算法。
二、基本概念
2.1 函数简述
minmax 库由两个标头组成:<boost/algorithm/minmax.hpp> 和 <boost/algorithm/minmax_element.hpp>。 (参见基本原理。)该库解决的问题是同时进行最小和最大计算只需要一次比较,但使用 std::min 和 std::max 会强制进行两次比较。更糟糕的是,计算 n 个元素范围的最小和最大元素只需要 3n/2+1 比较,而不是 std::min_element 和 std::max_element 强制的 2n(两次传递)。我一直认为调用两个函数来计算范围的范围,对输入执行两次传递是一种浪费,而实际上一次就足够了。当前的库解决了这两个问题。
第一个文件将函数模板 m