min_element(3C++) - min_element(3C++)
Standard C++ Library Copyright 1998, Rogue Wave Software, Inc.
NAMEmin_element
- Finds the minimum value in a range.
SYNOPSIS
#include <algorithm>
template <class ForwardIterator>
ForwardIterator
min_element(ForwardIterator first, ForwardIterator last);
template <class ForwardIterator, class Compare>
InputIterator
min_element(ForwardIterator first, ForwardIterator last,
Compare comp);
DESCRIPTION
The min_element algorithm returns an iterator that denotes the minimum
element in a sequence. If the sequence contains more than one copy of
the minimum element, the iterator points to the first occurrence of the
element. In the second version of the function, the optional argument
comp defines a comparison function that can be used in place of the
default operator<.
Algorithm min_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:
!(*j < *i)
or
comp(*j, *i) == false.
COMPLEXITYmin_element performs exactly max((last - first) - 1, 0) applications of
the corresponding comparisons.
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 Output64 32 1 3WARNINGS
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, max_element, min
Rogue Wave Software 02 Apr 1998 min_element(3C++)