Category: functors Component type: type


Select1st is a function object that takes a single argument, a pair [1], and returns the pair's first element.


Print all of a map's keys.
int main()
  map<int, double> M;
  M[1] = 0.3;
  M[47] = 0.8;
  M[33] = 0.1;

  transform(M.begin(), M.end(), ostream_iterator<int>(cout, " "),
            select1st<map<int, double>::value_type>());
  // The output is  1 33 47.


Defined in the standard header functional, and in the nonstandard backward-compatibility header function.h. This function object is an SGI extension; it is not part of the C++ standard.

Template parameters

Parameter Description Default
Pair The function object's argument type.  

Model of

Adaptable Unary FunctionAdaptable Unary FunctionAdaptable Unary Function

Type requirements

There exist some types U and V such that Pair provides the same interface as a pair<U,V>. [1]

Public base classes

unary_function<Pair, Pair::first_type>


Member Where defined Description
argument_type Adaptable Unary Function The type of select1st's argument: Pair
result_type Adaptable Unary Function The type of the result: Pair::first_type
const Pair::first_type&
operator()(const Pair& p) const
Adaptable Unary Function Function call. The return value is p.first.

New members

All of select1st's members are defined in the Adaptable Unary Function requirements. Select1st does not introduce any new members.


[1] Pair is not actually required to be a pair<U,V>, but merely to support the same interface as pair. In almost all cases the template parameter will be a pair, but it is occasionally useful for it to be something else. One example is a struct that has the members first, second, and third.

See also

identity, select2nd, project1st, project2nd
[Silicon Surf] [STL Home]
Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation