: min max, min max. , .
++ 03. , , - , min_element max_element. .
++ 0x minmax_element ( minmax). , ++ 0x, std::minmax_element, <algorithm>. , Boost Boost/ .
:
int array[] = {4, 7, 6, 5, 9, 4, 3, 1, 11};
std::pair<int*, int*> mm = minmax_element(begin(array), end(array));
( ) . , ala:
std::swap(*mm.first, end(array) - 2);
std::swap(*mm.second, end(array) - 1);
; O (1). , , , / ; O (N).
. - erase_minmax.
< > * begin end , :
template <typename T, size_t N>
T* begin(T (&pArray)[N])
{
return pArray;
}
template <typename T, size_t N>
T* end(T (&pArray)[N])
{
return pArray + N;
}
>