源码:
inline _ForwardIterator
max_element(_ForwardIterator __first, _ForwardIterator __last)
{
// concept requirements
__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
__glibcxx_function_requires(_LessThanComparableConcept<
typename iterator_traits<_ForwardIterator>::value_type>)
__glibcxx_requires_valid_range(__first, __last);
return _GLIBCXX_STD_A::__max_element(__first, __last,
__gnu_cxx::__ops::__iter_less_iter());
}
/**
* @brief Return the maximum element in a range using comparison functor.
* @ingroup sorting_algorithms
* @param __first Start of range.
* @param __last End of range.
* @param __comp Comparison functor.
* @return Iterator referencing the first instance of the largest value
* according to __comp.
*/
template<typename _ForwardIterator, typename _Compare>
inline _ForwardIterator
max_element(_ForwardIterator __first, _ForwardIterator __last,
_Compare __comp)
{
// concept requirements
__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
__glibcxx_function_requires(_BinaryPredicateConcept<_Compare,
typename iterator_traits<_ForwardIterator>::value_type,
typename iterator_traits<_ForwardIterator>::value_type>)
__glibcxx_requires_valid_range(__first, __last);
return _GLIBCXX_STD_A::__max_element(__first, __last,
__gnu_cxx::__ops::__iter_comp_iter(__comp));
}
_GLIBCXX_END_NAMESPACE_ALGO
} // namespace std
#endif /* _STL_ALGO_H */
函数用法有二:
1、传入参数类型为数组迭代器,返回数组中大最大值元素的迭代器
Max = *max_element(f.begin(),f.end())
2、除迭代器以外还传入比较器,来重写函数