|
VMS Help CXXLSTD, Algorithms, min_element *Conan The Librarian |
Standard C++ Library
Copyright 1996, Rogue Wave Software, Inc.
NAME
min_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<.
This function can be used with all the datatypes provided by the
standard library.
Algorithm min_element returns the first iterator i in the range
[first, last) such that for any iterator j in the range same range,
the following corresponding conditions hold:
!(*j < *i)
or
comp(*j, *i) == false.
COMPLEXITY
min_element performs exactly max((last - first) - 1, 0) applications
of the corresponding comparisons.
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
max, max_element, min
STANDARDS CONFORMANCE
ANSI X3J16/ISO WG21 Joint C++ Committee
|
|