4.2.3  最小值和最大值算法

4.2.3 最小值和最大值算法

STL算法库中包含了最大值算法和最小值算法,并且还提供了较复杂的比较形式。

最小值算法的原型为:

978-7-111-51399-5-Chapter04-16.jpg

最大值算法的原型为:

978-7-111-51399-5-Chapter04-17.jpg

上述两种算法原型中的第一种形式是以“operator<”进行元素比较;第二种形式是以参数op比较两个元素op(elem1,elem2),如果第一个元素小于第二个元素,应当返回true。如果存在多个最小值或最大值,算法返回找到的第一个最小或最大值。这4个函数的使用说法详见例4-5。

例4-5

978-7-111-51399-5-Chapter04-18.jpg

978-7-111-51399-5-Chapter04-19.jpg

例4-5的执行效果如图4-5所示。

978-7-111-51399-5-Chapter04-20.jpg

图4-5 例4-5的执行效果

总结

通过例4-5说明了min_element()算法和max_element()算法的使用方法,实现了无条件的最小值、最大值的求取,还实现了利用仿函数的有条件的最大值、最小值的求取。其中仿函数的作用是利用元素绝对值进行比较。