Minimum and maximum

const T& min (const T& a, const T& b) Function
const T& min (const T& a, const T& b, Compare comp) Function
const T& max (const T& a, const T& b) Function
const T& max (const T& a, const T& b, Compare comp) Function

template  const T& min(const T& a, const T& b);

template 
const T& min(const T& a, const T& b, Compare comp);

template  const T& max(const T& a, const T& b);

template 
const T& max(const T& a, const T& b, Compare comp);

min returns the smaller and max the larger. min and max return the first argument when their arguments are equal.

ForwardIterator max_element (ForwardIterator first, ForwardIterator last) Function
ForwardIterator max_element (ForwardIterator first, ForwardIterator last, Compare comp) Function

template ForwardIterator max_element(ForwardIterator first, ForwardIterator last);

template ForwardIterator max_element(ForwardIterator first, ForwardIterator last,
                            Compare comp);

max_element returns the first iterator i in the range [first, last) such that for any iterator j in the range [first, last) the following corresponding conditions hold: !(*i < *j) or comp(*i, *j) == false. Exactly max((last - first) - 1, 0) applications of the corresponding comparisons are done.

ForwardIterator min_element (ForwardIterator first, ForwardIterator last) Function
ForwardIterator min_element (ForwardIterator first, ForwardIterator last, Compare comp) Function

template ForwardIterator min_element(ForwardIterator first, ForwardIterator last);

template ForwardIterator min_element(ForwardIterator first, ForwardIterator last,
                            Compare comp);

min_element returns the first iterator i in the range [first, last) such that for any iterator j in the range [first, last) the following corresponding conditions hold: !(*j < *i) or comp(*j, *i) == false. Exactly max((last - first) - 1, 0) applications of the corresponding comparisons are done.