United States    
COMPAQ STORE | PRODUCTS | SERVICES | SUPPORT
| CONTACT US | SEARCH
C++
min_element (3C++std) - Tru64 UNIX
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
  

1.800.AT.COMPAQ

privacy and legal statement