Если доступен C ++ 11, вы можете использовать диапазон for
loop:
for(auto &i: info) {
for(auto &j: i.second) {
/* */
}
}
Если доступен только C ++ 11 auto
:
for( auto i=info.begin(); i!=info.end(); ++i) {
for( auto j=i->second.begin(); j!=i->second.end(); ++j) {
/* */
}
}
ЕслиВы можете использовать BOOST, есть BOOST_FOREACH:
typedef std::map<int, std::string> inner_map;
typedef std::map<std::string, inner_map> outer_map;
outer_map outer;
BOOST_FOREACH(outer_map::value_type &outer_value, outer){
BOOST_FOREACH(inner_map::value_type &inner_value, outer_value->second){
/* use outer_value and inner_value as std::pair */
}
}