Wie kann ich drucken Sie C++ - Karte Werte?
Ich habe eine map
wie diese:
map<string, pair<string,string> > myMap;
Und ich habe eingefügt, einige Daten in meine Karte mit:
myMap.insert(make_pair(first_name, make_pair(middle_name, last_name)));
Wie kann ich jetzt alle Daten ausdrucken, die in meiner Karte?
- Siehe diese Frage.
- Sie Durchlaufen die Karte, mit der ein iterator, den Schlüssel zu nehmen, die Mitglieder des Paares, und gelten
cout::operator<<
zu Ihnen. Es ist nicht schwer, wirklich. - stackoverflow.com/questions/1063453/how-to-display-map-contents Dieses Frage-und Antwort-sollte man es tun.
- mögliche Duplikate von Wie man eine Schleife durch eine c++ - map
Du musst angemeldet sein, um einen Kommentar abzugeben.
In C++11, brauchen Sie nicht zu buchstabieren
map<string, pair<string,string> >::const_iterator
. Sie könnenauto
Beachten Sie die Verwendung von
cbegin()
undcend()
Funktionen.Noch einfacher, können Sie die range-basierte for-Schleife:
Wenn Ihr compiler unterstützt (zumindest ein Teil) C++11 könnte man etwas machen wie:
C++03, die ich benutzen würde
std::copy
mit einer insertion-operator statt:for (auto& t : myMap) std::cout << t.first << " " << t.second.first << " " << t.second.second << "\n";
&
vermeidet, eine Kopie während der loop-iteration.Seit C++17 können Sie range-basierte for-Schleifen zusammen mit strukturierte Bindungen für die Iteration über Ihre Karte. Dies verbessert die Lesbarkeit, weil Sie reduzieren die Menge der benötigten
first
undsecond
Mitglieder in Ihrem code:Ausgabe:
Code auf Coliru