Man Page min_element.3

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



      - Finds the minimum value in a range.


     #include <algorithm>
     template <class ForwardIterator>
      min_element(ForwardIterator first, ForwardIterator last);

     template <class ForwardIterator, class Compare>
      min_element(ForwardIterator first, ForwardIterator last,
                 Compare comp);


     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)


     comp(*j, *i) == false.


     min_element performs exactly max((last  -  first)  -  1,  0)
     applications of the corresponding comparisons.


     // 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,
        // 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(),
        // it4 = v1.begin() + 1

       cout << *it1 << " " << *it2 << " "
             << *it3 << " " << *it4 << endl;

       return 0;

     Program Output

     64 32 1 3


     If your compiler does not support default  template  parame-
     ters,  then you always need to supply the Allocator template
     argument. For instance, you have to write:

     vector<int,allocator<int> >

     instead of:


     If your compiler does not support namespaces,  then  you  do
     not need the using declaration for std.


     max, max_element, min