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
  Close     Help