如何循环C ++地图的地图?
如何在C ++中循环使用
std::map
?我的地图定义为:
std::map< std::string, std::map<std::string, std::string> >
例如,上面的容器包含如下数据:
m["name1"]["value1"] = "data1";
m["name1"]["value2"] = "data2";
m["name2"]["value1"] = "data1";
m["name2"]["value2"] = "data2";
m["name3"]["value1"] = "data1";
m["name3"]["value2"] = "data2";
如何遍历此地图并访问各种值?
没有找到相关结果
已邀请:
8 个回复
骨乏唯瓜
这应该比早期版本更清晰,并避免不必要的副本。 有人赞成用引用变量的明确定义替换注释(如果未使用则会被优化掉):
仇聘发栖
肺鬼耙扮群
或者在C ++ 0x中更好:
臀博
漂截嘘
最初的提案(由杰出人物Bjarne Stroustrup,Herb Sutter和Gabriel Dos Reis提供)很有趣(建议的语法更直观恕我直言);这个标准的建议措辞也很难阅读,但更接近实际的内容。
缝皋
输出:
剑哎
。
枫湃揩乾纲
注1:为了填充地图,我使用了初始化列表(这是一个C ++ 11特性)。这有时可以方便地保持固定的初始化紧凑。 注意2:如果要在循环中修改地图
,则必须删除
关键字。 Coliru代码