Wie durchläuft man eine ungeordnete Menge in C ++?
Angenommen ich habe eine unsortierte set
unordered_set<int> my_set;
myset.insert(1);
myset.insert(2);
myset.insert(3);
Wie muss ich Durchlaufen? Ich brauche nicht zu Durchlaufen, in beliebiger Reihenfolge - nur so lange, wie ich erreichen jedes element einmal. Ich habe versucht,
for (int i = 0; i < my_set.size(); i++)
cout << my_set[i];
ohne Erfolg.
InformationsquelleAutor der Frage dangerChihuahua007 | 2012-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die neue range-basierte for-Schleife:
Oder Sie können das traditionellere iterator-basierte Schleife:
Oder, wenn Sie nicht haben
auto
Unterstützung, vielleicht weil Sie nicht über C++11-Unterstützung auf Ihrem compiler:Hoffe, das hilft!
InformationsquelleAutor der Antwort templatetypedef
Genau wie jede andere Sammlung:
Oder ein bisschen mehr generische Weise mit überlastungen
begin
undEnde
Funktionen (Sie können schreiben Sie überladungen für Ihre eigenen Arten; Sie arbeiten auch auf der Ebene arrays):InformationsquelleAutor der Antwort Kos
Nie benutzt Sie so weit, aber ich denke, dass Sie verwenden können, einen iterator auf die gleiche Weise tun, die mit
std::set
:InformationsquelleAutor der Antwort Mario