Wie kann ich die Iteration über eine STL-Karte in eine STL-map?

Habe ich eine STL-map-definition wie folgt:

map<string, map<int, string> > info;

Ich Durchlaufen, die Karte mit dem folgenden code:

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

Ist dies die richtige Art und Weise zu Durchlaufen, oder gibt es eine bessere Möglichkeit, dies zu tun? Der obige code funktioniert für mich, aber ich bin auf der Suche nach einer eleganten Lösung.

  • Tatsächlich Iteration über alle Einträge der äußeren anzeigen und alle inneren Landkarten als gut, es gibt keine "bessere" Lösung würde ich sagen. Zwei geschachtelte Schleifen, kein problem.
  • Als Nebeneffekt der Frage in Bezug auf Eleganz, was falsch mit der -> Betreiber?
  • es ist nichts falsch oder unelegent über das code.. es ist nur so, dass ich thot gibt es vielleicht einen besseren Weg...
Schreibe einen Kommentar