Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Front Page / Algorithms / Querying Algorithms / min_element

min_element

Synopsis

template<
      typename Sequence
    , typename Pred = less<_1,_2>
    >
struct min_element
{
    typedef unspecified type;
};

Description

Returns an iterator to the smallest element in Sequence.

Header

#include <boost/mpl/min_element.hpp>

Parameters

Parameter Requirement Description
Sequence Forward Sequence A sequence to be searched.
Pred Binary Lambda Expression A comparison criteria.

Expression semantics

For any Forward Sequence s and binary Lambda Expression pred:

typedef min_element<s,pred>::type i;
Return type:

Forward Iterator.

Semantics:

i is the first iterator in [begin<s>::type, end<s>::type) such that for every iterator j in [begin<s>::type, end<s>::type),

apply< pred, deref<j>::type, deref<i>::type >::type::value == false

Complexity

Linear. Zero comparisons if s is empty, otherwise exactly size<s>::value - 1 comparisons.

Example

typedef vector<bool,char[50],long,double> types;
typedef min_element<
      transform_view< types,sizeof_<_1> >
    >::type iter;

BOOST_MPL_ASSERT(( is_same< deref<iter::base>::type, bool> ));

See also

Querying Algorithms, max_element, find_if, upper_bound, find