Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ max_element(3C++) — Sun WorkShop 5.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

max_element(3C++)

Standard C++ Library
Copyright 1998, Rogue Wave Software, Inc.

 

NAME

 
max_element
 
 - Finds the maximum value in a range.
 
 
 

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<. 
 
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>

using namespace std;

 

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;

}
 

Program Output
 
 
 

 
64 32 1 3
 
 
 

WARNINGS

 
 
If your compiler does not support default template parameters, then you always need to supply the Allocator template argument. For instance, you have to write:
 
vector<int,allocator<int> >
 
instead of:
 
vector<int>
 
If your compiler does not support namespaces, then you do not need the using declaration for std. 
 
 
 

SEE ALSO

 
 
max, min, min_element
 

Rogue Wave Software  —  Last change: 02 Apr 1998

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026