猿问

如何循环C ++地图的地图?

如何循环C ++地图的地图?

如何std::map在C ++中循环?我的地图定义为:


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";

如何遍历此地图并访问各种值?


FFIVE
浏览 411回答 3
3回答

素胚勾勒不出你

for(std::map<std::string,&nbsp;std::map<std::string,&nbsp;std::string>&nbsp;>::iterator&nbsp;outer_iter=map.begin();&nbsp;outer_iter!=map.end();&nbsp;++outer_iter)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;for(std::map<std::string,&nbsp;std::string>::iterator&nbsp;inner_iter=outer_iter->second.begin();&nbsp;inner_iter!=outer_iter->second.end();&nbsp;++inner_iter)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;<<&nbsp;inner_iter->second&nbsp;<<&nbsp;std::endl; &nbsp;&nbsp;&nbsp;&nbsp;}}或者在C ++ 0x中更好:for(auto&nbsp;outer_iter=map.begin();&nbsp;outer_iter!=map.end();&nbsp;++outer_iter)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;for(auto&nbsp;inner_iter=outer_iter->second.begin();&nbsp;inner_iter!=outer_iter->second.end();&nbsp;++inner_iter)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;<<&nbsp;inner_iter->second&nbsp;<<&nbsp;std::endl; &nbsp;&nbsp;&nbsp;&nbsp;}}
随时随地看视频慕课网APP
我要回答