Adobe Systems Incorporated


Category: functors Component type: type


Select2nd is a functors that takes a single argument, a pair [1], and returns the pair's second element.


Print all of a Map's values.

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<double>(cout, " "),
            select2nd<Map<int, double>::value_type>());
  // The output is  0.3 0.1 0.8


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


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::second_type>


Member Where defined Description
argument_type AdaptableUnaryFunction The type of select2nd's argument: Pair
result_type AdaptableUnaryFunction The type of the result: Pair::second_type
const Pair::second_type&
operator()(const Pair& p) const
AdaptableUnaryFunction Function call. The return value is p.second.

New members

All of select2nd's members are defined in the AdaptableUnaryFunction requirements. Select2nd 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, select1st, project1st, project2nd

Copyright © 2006-2007 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google