SGI

max_element

类别:算法 组件类型:函数

原型

Max_element是一个重载名称;实际上有两个max_element函数。
template <class ForwardIterator>
ForwardIterator max_element(ForwardIterator first, ForwardIterator last);

template <class ForwardIterator, class BinaryPredicate>
ForwardIterator max_element(ForwardIterator first, ForwardIterator last,
                            BinaryPredicate comp);

描述

Max_element查找范围中最大的元素[first, last)。它返回第一个迭代器i[first, last)中,使得范围中没有其他迭代器[first, last)指向的值大于*i。返回值为last当且仅当[first, last)是一个空范围。

这两个版本的max_element在如何定义一个元素小于另一个元素方面有所不同。第一个版本使用operator<比较对象,第二个版本使用一个函数对象comp.

第一个版本的max_element返回第一个迭代器i[first, last)使得对于每个迭代器j[first, last), *i < *jfalse。第二个版本返回第一个迭代器i[first, last)使得对于每个迭代器j[first, last), comp(*i, *j)false.

定义

在标准头文件algorithm中定义,并在非标准向后兼容头文件algo.h中定义。

类型要求

对于第一个版本对于第二个版本

前提条件

复杂度

线性。如果[first, last)是一个空范围,则比较次数为零,否则正好为(last - first) - 1次比较。

示例

int main()
{
  list<int> L;
  generate_n(front_inserter(L), 1000, rand);
  
  list<int>::const_iterator it = max_element(L.begin(), L.end());
  cout << "The largest element is " << *it << endl;
}

注释

另请参阅

min, max, min_element小于可比较sort, nth_element
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息