Definition
Defined in the standard header algorithm, and in the nonstandard backward-compatibility header algo.h.
Requirements on types
For the first version:
• T is a model of LessThan Comparable.
For the second version:
• BinaryPredicate is a model of Binary Predicate.
• T is convertible to BinaryPredicate 's first argument type and to its second argument type.
Example
const int x = max(3, 9);
assert(x == 9);
See also
min , min_element , max_element , LessThan Comparable
Category: algorithms
Component type: function
Prototype
Min_element is an overloaded name; there are actually two min_element functions.
template
ForwardIterator min_element(ForwardIterator first, ForwardIterator last);
template
ForwardIterator min_element(ForwardIterator first, ForwardIterator last, BinaryPredicate comp);
Description
Min_element finds the smallest element in the range [first, last) . It returns the first iterator i in [first, last) such that no other iterator in [first, last) points to a value smaller than *i . The return value is last if and only if [first, last) is an empty range.
The two versions of min_element differ in how they define whether one element is less than another. The first version compares objects using operator< , and the second compares objects using a function object comp .
The first version of min_element returns the first iterator i in [first, last) such that, for every iterator j in [first, last) , *j < *i is false . The second version returns the first iterator i in [first, last) such that, for every iterator j in [first, last) , comp(*j, *i) is false .
Definition
Defined in the standard header algorithm, and in the nonstandard backward-compatibility header algo.h.
Requirements on types
For the first version:
• ForwardIterator is a model of Forward Iterator.
• ForwardIterator 's value type is LessThan Comparable.
For the second version:
• ForwardIterator is a model of Forward Iterator.
• BinaryPredicate is a model of Binary Predicate.
• ForwardIterator 's value type is convertible to BinaryPredicate 's first argument type and second argument type.
Preconditions
• [first, last) is a valid range.
Complexity
Linear. Zero comparisons if [first, last) is an empty range, otherwise exactly (last – first) – 1 comparisons.
Example
int main() {
list L;
generate_n(front_inserter(L), 1000, rand);
list::const_iterator it = min_element(L.begin(), L.end());
cout << "The smallest element is " << *it << endl;
}
See also
min , max max_element , LessThan Comparable, sort , nth_element
Category: algorithms
Component type: function
Prototype
Max_element is an overloaded name; there are actually two max_element functions.
template
ForwardIterator max_element(ForwardIterator first, ForwardIterator last);
template
ForwardIterator max_element(ForwardIterator first, ForwardIterator last, BinaryPredicate comp);
Description
Max_element finds the largest element in the range [first, last) . It returns the first iterator i in [first, last) such that no other iterator in [first, last) points to a value greater than *i . The return value is last if and only if [first, last) is an empty range.
The two versions of max_element differ in how they define whether one element is less than another. The first version compares objects using operator< , and the second compares objects using a function object comp .
The first version of max_element returns the first iterator i in [first, last) such that, for every iterator j in [first, last) , *i < *j is false . The second version returns the first iterator i in [first, last) such that, for every iterator j in [first, last) , comp(*i, *j) is false .
Definition
Defined in the standard header algorithm, and in the nonstandard backward-compatibility header algo.h.
Requirements on types
For the first version:
• ForwardIterator is a model of Forward Iterator.
• ForwardIterator 's value type is LessThan Comparable.
For the second version:
• ForwardIterator is a model of Forward Iterator.
• BinaryPredicate is a model of Binary Predicate.
• ForwardIterator 's value type is convertible to BinaryPredicate 's first argument type and second argument type.
Preconditions
• [first, last) is a valid range.
Complexity
Linear. Zero comparisons if [first, last) is an empty range, otherwise exactly (last – first) – 1 comparisons.
Example
int main() {
list L;
generate_n(front_inserter(L), 1000, rand);
list::const_iterator it = max_element(L.begin(), L.end());
cout << "The largest element is " << *it << endl;
}
See also
min , max , min_element , LessThan Comparable, sort , nth_element
Category: algorithms
Component type: function
Prototype
Lexicographical_compare is an overloaded name; there are actually two lexicographical_compare functions.
template
bool lexicographical_compare(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2);
template
bool lexicographical_compare(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, BinaryPredicate comp);
Читать дальше