如何才能访问map
中存储的std::set
?我需要做一些像
for (iterator=map.begin(); iterator!=map.end(); iterator++) {
some_function(iterator->first);
}
,而不是使用包含地图的集合来映射。
答案 0 :(得分: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>
只是为了说明。
答案 1 :(得分:1)
使用range-for使这更加简单(假设我理解你的问题):
for (map<int, int>& m : my_set) {
some_function(m);
}