Алгоритм min_element()
template< class ForwardIterator >
ForwardIterator
min_element( ForwardIterator first,
ForwardIterator last );
template< class ForwardIterator, class Compare >
ForwardIterator
min_element( ForwardIterator first,
ForwardIterator last, Compare comp );
max_element() возвращает итератор, указывающий на элемент, который содержит наименьшее значение последовательности, ограниченной диапазоном [first,last). В первом варианте используется оператор “меньше”, определенный для типа элементов контейнера; во втором – операция сравнения comp.
// иллюстрирует max(), min(), max_element(), min_element()
#include <algorithm>
#include <vector>
#include <iostream.h>
int main()
{
int ia[] = { 7, 5, 2, 4, 3 };
const vector< int, allocator > ivec( ia, ia+5 );
int mval = max( max( max( max(ivec[4],ivec[3]),
ivec[2]),ivec[1]),ivec[0]);
// вывод: результат вложенных вызовов max() равен: 7
cout << "результат вложенных вызовов max() равен: "
<< mval << endl;
mval = min( min( min( min(ivec[4],ivec[3]),
ivec[2]),ivec[1]),ivec[0]);
// вывод: результат вложенных вызовов min() равен: 2
cout << "результат вложенных вызовов min() равен: "
<< mval << endl;
vector< int, allocator >::const_iterator iter;
iter = max_element( ivec.begin(), ivec.end() );
// вывод: результат вложенных вызовов max_element() также равен: 7
cout << "результат вложенных вызовов max_element() также равен: "
<< *iter << endl;
iter = min_element( ivec.begin(), ivec.end() );
// вывод: результат вложенных вызовов min_element() также равен: 2
cout << "результат вложенных вызовов min_element() также равен: "
<< *iter << endl;
}