
13 Oct
2005
13 Oct
'05
4:23 a.m.
Lewis Hyatt <lhyatt@Princeton.EDU> writes:
The idea is to define a template class,
template<typename Iterator> class first_iterator_t { Iterator pair_iter; public: first_iterator_t(Iterator const&); /*...*/ };
which overloads operator*() and operator->() to access the element named "first" of the object returned by Iterator::operator*(). (With something analagous for second_iterator_t.) A function named first_iterator() provides a convenient creation function a-la std::make_pair().
Sounds like a job for transform_iterator. http://www.boost.org/libs/iterator/doc/transform_iterator.html -- Dave Abrahams Boost Consulting www.boost-consulting.com