Personal tools
max_element
Click on the banner to return to the class reference home page.
max_element
Algorithm
- Summary
- Data Type and Member Function Indexes
- Synopsis
- Description
- Complexity
- Example
- Warning
- See Also
Summary
Finds maximum value in a range.
Data Type and Member Function Indexes
(exclusive of constructors and destructors)
None
Synopsis
#include <algorithm> template <class ForwardIterator> ForwardIterator max_element(ForwardIterator first, ForwardIterator last); template <class ForwardIterator, class Compare> ForwardIterator max_element(ForwardIterator first, ForwardIterator last, Compare comp);
Description
The max_element algorithm returns an iterator that denotes the maximum element in a sequence. If the sequence contains more than one copy of the element, the iterator points to its first occurrence. The optional argument comp defines a comparison function that can be used in place of the default operator<. This function can be used with all the datatypes provided by the standard library.
Algorithm max_element returns the first iterator i in the range [first, last) such that for any iterator j in the same range the following corresponding conditions hold:
!(*i < *j)
or
comp(*i, *j) == false.
Complexity
Exactly max((last - first) - 1, 0) applications of the corresponding comparisons are done for max_element.
Example
// // max_elem.cpp // #include <algorithm> #include <vector> #include <iostream.h> int main(void) { typedef vector<int>::iterator iterator; int d1[5] = {1,3,5,32,64}; // set up vector vector<int> v1(d1,d1 + 5); // find the largest element in the vector iterator it1 = max_element(v1.begin(), v1.end()); // it1 = v1.begin() + 4 // find the largest element in the range from // the beginning of the vector to the 2nd to last iterator it2 = max_element(v1.begin(), v1.end()-1, less<int>()); // it2 = v1.begin() + 3 // find the smallest element iterator it3 = min_element(v1.begin(), v1.end()); // it3 = v1.begin() // find the smallest value in the range from // the beginning of the vector plus 1 to the end iterator it4 = min_element(v1.begin()+1, v1.end(), less<int>()); // it4 = v1.begin() + 1 cout << *it1 << " " << *it2 << " " << *it3 << " " << *it4 << endl; return 0; } Output : 64 32 1 3
Warning
If your compiler does not support default template parameters then you need to always supply the Allocator template argument. For instance you'll have to write:
vector<int,allocator<int> >
instead of:
vector<int>
See Also
©Copyright 1996, Rogue Wave Software, Inc.