14 #ifndef ITERATOR_TYPES_H 15 #define ITERATOR_TYPES_H 24 template<
class pair_iterator>
27 typedef typename pair_iterator::value_type::first_type value_type;
32 value_type operator *() {
33 return pair_iterator::operator *().first;
42 template<
class pair_iterator>
45 typedef typename pair_iterator::value_type::second_type value_type;
50 value_type operator *() {
51 return pair_iterator::operator *().second;
59 template<
class base_iterator,
class new_type>
62 typedef new_type value_type;
67 value_type operator *() {
68 return (new_type)base_iterator::operator *();
This is an iterator adaptor that converts any iterator that returns a pair (e.g.
This is an iterator adaptor that converts any iterator that returns a pair (e.g.
This is an iterator adaptor that explicitly typecasts each value returned by the base iterator to the...