【发布时间】:2011-05-29 19:48:52
【问题描述】:
我有一个 STL 映射定义如下:
map<string, map<int, string> > info;
我使用以下代码迭代该地图:
for( map<string, map<int, string> >::iterator ii=info.begin(); ii!=info.end(); ++ii){
for(map<int, string>::iterator j=ii->second.begin(); j!=ii->second.end();++j){
cout << (*ii).first << " : " << (*j).first << " : "<< (*j).second << endl;
}
}
这是正确的迭代方法还是有更好的方法?上面的代码对我有用,但我正在寻找更优雅的解决方案。
【问题讨论】:
-
要实际迭代外部映射和所有内部映射的所有条目,我会说没有“更好”的解决方案。两个嵌套循环,没问题。
-
作为一个关于优雅的附带问题,
->运算符有什么问题? -
该代码没有任何错误或不雅点。只是我认为可能有更好的方法...
标签: c++ dictionary stl iteration