VMS Help
CXXLSTD, Algorithms, max_element

 *Conan The Librarian

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

 NAME

   max_element  - Finds maximum value in	a range.

 SYNOPSIS

   #include <algorithm>

   template <class ForwardIterator>
   ForwardIterator
    max_element(ForwardIterator first, ForwardIterator last);

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

 DESCRIPTION

   The max_element algorithm returns an iterator	that denotes the
   maximum element	in a sequence. If the sequence contains	more
   than one copy of the element, the iterator	points to its first
   occurrence.	 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 max_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:

   !(*i < *j)

   or

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

 COMPLEXITY

   Exactly max((last - first) - 1, 0) applications of the corresponding
   comparisons are done for	max_element.

 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, min, min_element

 STANDARDS CONFORMANCE
   ANSI X3J16/ISO WG21 Joint C++	Committee
  Close     Help