user2221390
user2221390

Reputation: 33

Iterator in std::set containing std::map

How can I can gain access to a map which is stored in std::set? I need to do something like

for (iterator=map.begin(); iterator!=map.end(); iterator++) {
    some_function(iterator->first);
}

, but instead of map im using set containing maps.

Upvotes: 0

Views: 688

Answers (2)

Barry
Barry

Reputation: 302797

Using range-for makes this much simpler (assuming I understand your question):

for (map<int, int>& m : my_set) {
    some_function(m);
}

Upvotes: 1

Ivaylo Strandjev
Ivaylo Strandjev

Reputation: 70929

It's not very different from iterating any other map.

set<map<int, int> > s;
for (set<map<int, int> >::iterator it = s.begin(); it != s.end(); ++it) {
  for (map<int, int>::iterator iter = it->begin(); iter != it->end(); ++iter) {
     .. do something ...
  }
}

So first you iterate over the set and then over the elements of the map pointed to by the outer container's iterator. I have used map<int, int> here just for illustration.

Upvotes: 1

Related Questions