Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ min_element(3C++) — Sun WorkShop 5.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

min_element(3C++)

Standard C++ Library
Copyright 1998, 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<. 
 
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)
 
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>

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,

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;

}
 

Program Output
 
 
 

 
64 32 1 3
 
 
 

WARNINGS

 
 
If your compiler does not support default template parameters, then you always need to supply the Allocator template argument. For instance, you have to write:
 
vector<int,allocator<int> >
 
instead of:
 
vector<int>
 
If your compiler does not support namespaces, then you do not need the using declaration for std. 
 
 
 

SEE ALSO

 
 
max, max_element, min
 

Rogue Wave Software  —  Last change: 02 Apr 1998

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026