0

我如何才能访问map存储在其中的内容std::set?我需要做类似的事情

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

,但不是使用包含地图的集合来代替地图。

4

2 回答 2

1

它与迭代任何其他地图没有太大区别。

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 ...
  }
}

因此,首先您遍历集合,然后遍历外部容器的迭代器指向的映射元素。我在map<int, int>这里只是为了说明。

于 2013-04-06T19:46:07.403 回答
1

使用 range-for 使这更简单(假设我理解你的问题):

for (map<int, int>& m : my_set) {
    some_function(m);
}
于 2013-04-06T19:55:30.917 回答