template<class T> constexpr const T& min(const T& a, const T& b);
template<class T, class Compare>
constexpr const T& min(const T& a, const T& b, Compare comp);
Requires: Для первой формы типT должен быть LessThanComparable.
template<class T>
constexpr T min(initializer_list<T> t);
template<class T, class Compare>
constexpr T min(initializer_list<T> t, Compare comp);
Requires:T должно бытьCopyConstructible иt.size() > 0. Для первой формы типT должен бытьLessThanComparable.
Remarks: Возвращает копию самого левого аргумента, если несколько аргументов эквивалентны наименьшему.
template<class T> constexpr const T& max(const T& a, const T& b);
template<class T, class Compare>
constexpr const T& max(const T& a, const T& b, Compare comp);
Requires: Для первой формы типT должен быть LessThanComparable.
template<class T>
constexpr T max(initializer_list<T> t);
template<class T, class Compare>
constexpr T max(initializer_list<T> t, Compare comp);
Requires:T должно бытьCopyConstructible иt.size() > 0. Для первой формы типT должен бытьLessThanComparable.
Remarks: Возвращает копию самого левого аргумента, если несколько аргументов эквивалентны самому большому.
template<class T> constexpr pair<const T&, const T&> minmax(const T& a, const T& b);
template<class T, class Compare>
constexpr pair<const T&, const T&> minmax(const T& a, const T& b, Compare comp);
Requires: Для первой формы типT должен быть LessThanComparable.
Returns: pair<const T&, const T&>(b, a) еслиb меньшеa, и в pair<const T&, const T&>(a, b) противном случае.
template<class T>
constexpr pair<T, T> minmax(initializer_list<T> t);
template<class T, class Compare>
constexpr pair<T, T> minmax(initializer_list<T> t, Compare comp);
Requires:T должно бытьCopyConstructible иt.size() > 0. Для первой формы типT должен бытьLessThanComparable.
Remarks:x является копией самого левого аргумента, когда несколько аргументов эквивалентны наименьшему.y является копией самого правого аргумента, когда несколько аргументов эквивалентны самому большому.
template<class ForwardIterator>
constexpr ForwardIterator min_element(ForwardIterator first, ForwardIterator last);
template<class ExecutionPolicy, class ForwardIterator>
ForwardIterator min_element(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last);
template<class ForwardIterator, class Compare>
constexpr ForwardIterator min_element(ForwardIterator first, ForwardIterator last,
Compare comp);
template<class ExecutionPolicy, class ForwardIterator, class Compare>
ForwardIterator min_element(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last,
Compare comp);
Returns: Первый итератор i в диапазоне, [first, last) такой, что для каждого итератора j в диапазоне [first, last) выполняются следующие соответствующие условия: !(*j < *i) или comp(*j, *i) == false. Возвращает, last если first == last.
template<class ForwardIterator>
constexpr ForwardIterator max_element(ForwardIterator first, ForwardIterator last);
template<class ExecutionPolicy, class ForwardIterator>
ForwardIterator max_element(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last);
template<class ForwardIterator, class Compare>
constexpr ForwardIterator max_element(ForwardIterator first, ForwardIterator last,
Compare comp);
template<class ExecutionPolicy, class ForwardIterator, class Compare>
ForwardIterator max_element(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last,
Compare comp);
Returns: Первый итератор i в диапазоне, [first, last) такой, что для каждого итератора j в диапазоне [first, last) выполняются следующие соответствующие условия: !(*i < *j) или comp(*i, *j) == false. Возвращает, last если first == last.
template<class ForwardIterator>
constexpr pair<ForwardIterator, ForwardIterator>
minmax_element(ForwardIterator first, ForwardIterator last);
template<class ExecutionPolicy, class ForwardIterator>
pair<ForwardIterator, ForwardIterator>
minmax_element(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last);
template<class ForwardIterator, class Compare>
constexpr pair<ForwardIterator, ForwardIterator>
minmax_element(ForwardIterator first, ForwardIterator last, Compare comp);
template<class ExecutionPolicy, class ForwardIterator, class Compare>
pair<ForwardIterator, ForwardIterator>
minmax_element(ExecutionPolicy&& exec,
ForwardIterator first, ForwardIterator last, Compare comp);
Returns: make_pair(first, first) если[first, last) пусто, в противном случае make_pair(m, M)гдеm - первый итератор в[first, last) таком, что ни один итератор в диапазоне не ссылается на меньший элемент, а гдеM - последний итератор266 в[first, last) таком, что ни один итератор в диапазоне не ссылается на больший элемент.
Complexity: В большинстве max(⌊32(N−1)⌋,0) случаев применения соответствующего предиката, гдеN естьlast - first.
Это поведение намеренно отличается отmax_element().