
Chris Goller <cgoller@magpiesystems.com> writes:
I'm just getting into boost and I really like it.
I would like to iterate over keys of a multimap.
so it would look like this:
std::multimap<type, type>::key_iterator i = map.beginkey(); i != map.endkey(); i++ at each i++ it would move to the next key.
-or-
for_each(map.beginkey(), map.endkey(), whatever);
Is this possible with the boost iterators?
You can't use that syntax, because there's no way to inject a key_iterator member into std::multimap. You could use a transform_iterator over the multimap's native iterator with select1st, defined as: struct select1st { template <class T, class U> T& operator()(std::pair<T,U>& p) const { return p.first } template <class T, class U> T const& operator()(std::pair<T,U> const& p) const { return p.first } }; HTH, -- Dave Abrahams Boost Consulting http://www.boost-consulting.com