Über ein Set iterieren
Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy. Lektion 39 von 56.
Nachdem Sie nun Elemente zu einem Set hinzufügen, prüfen und daraus entfernen können, lernen wir nun, wie man über alle Elemente in einem Set iteriert. Die bereichsbasierte for-Schleife bietet die sauberste Möglichkeit, jedes Element zu besuchen.
So iterieren Sie durch ein Set:
std::set<std::string> fruits = {"banana", "apple", "cherry"};
for (const std::string& fruit : fruits) {
std::cout << fruit << std::endl;
}Das wichtigste Merkmal, an das du dich erinnern solltest, ist, dass Mengen automatisch eine sortierte Reihenfolge beibehalten. Wenn du durch die oben stehende Obstmenge iterierst, lautet die Ausgabe „apple“, „banana“, „cherry“ – nicht die Reihenfolge, in der du sie eingefügt hast. Diese automatische Sortierung ist einer der wichtigsten Vorteile der Verwendung von std::set.
Diese sortierte Iteration macht Sets perfekt für die Anzeige von Daten in alphabetischer oder numerischer Reihenfolge, ohne dass eine manuelle Sortierung erforderlich ist. Egal, ob Sie mit Zahlen, Strings oder anderen vergleichbaren Typen arbeiten, das Set wird sie immer in ihrer natürlichen sortierten Reihenfolge darstellen.
Aufgabe
EinfachErstelle ein Programm, das die automatische Sortierfunktion von std::set demonstriert, indem es Wörter zu einer Menge hinzufügt und anschließend durch sie iteriert, um sie in alphabetischer Reihenfolge anzuzeigen. Diese Aufgabe prüft dein Verständnis von bereichsbasierten for-Schleifen mit Mengen und davon, wie Mengen ihre sortierte Reihenfolge beibehalten.
Die folgenden Eingaben werden bereitgestellt:
- Eine Ganzzahl
n, die die Anzahl der Wörter angibt, die zur Menge hinzugefügt werden sollen - Anschließend
nZeichenfolgen, die die Wörter darstellen, die in die Menge eingefügt werden sollen
Dein Programm sollte:
- Eine leere
std::set<std::string>erstellen - Die Anzahl der hinzuzufügenden Wörter einlesen
- Eine Schleife verwenden, um jedes Wort einzulesen und es mithilfe der Methode
.insert()in die Menge einzufügen - Eine bereichsbasierte for-Schleife verwenden, um durch die Menge zu iterieren und jedes Wort auszugeben
- Nach der Ausgabe aller Wörter die Gesamtanzahl der eindeutigen Wörter in der Menge anzeigen
Verwende das folgende genaue Ausgabeformat:
Für jedes Wort in der Menge (in alphabetischer Reihenfolge):
[word]Zusammenfassung am Ende:
Total unique words: [count]Verwende die Syntax for (const std::string& word : wordSet) einer bereichsbasierten for-Schleife, um durch alle Elemente der Menge zu iterieren. Die Menge präsentiert die Wörter automatisch in alphabetischer Reihenfolge und demonstriert damit einen der wichtigsten Vorteile der Verwendung von std::set. Denke daran: Wenn doppelte Wörter in der Eingabe vorkommen, werden sie von der Menge automatisch ignoriert, sodass nur eindeutige Wörter angezeigt werden.
Probier es selbst
#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
// Lies die Anzahl der Wörter ein
int n;
cin >> n;
// Erstelle ein leeres Set, um Wörter zu speichern
set<string> wordSet;
// TODO: Schreibe deinen Code hier
// Lies n Wörter ein und füge sie in das Set ein
// Verwende eine bereichsbasierte for-Schleife, um das Set zu durchlaufen und jedes Wort auszugeben
// Gib die Gesamtzahl der eindeutigen Wörter aus
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Pointer und Speicher
Was ist ein Pointer?AdressoperatorDereferenzierungsoperatorNull-PointerPointer und ArraysDynamischer Speicher mit 'new'Speicher freigeben mit 'delete'Zusammenfassung – Pointer-Übung2Vektoren (Dynamische Arrays)
Einführung in std::vectorEinen Vector erstellenElemente hinzufügenAuf Elemente zugreifenVector-GrößeIterieren mit einer For-SchleifeRange-based For-SchleifeElemente entfernenZusammenfassung – Vector-Operationen3Projekt: Aufgabenlisten-Tool
ProjektübersichtEine Aufgabe hinzufügen6Sets (Eindeutige Elemente)
Einführung in std::setSet erstellen & Elemente hinzufügenAuf Elemente prüfenElemente entfernenÜber ein Set iterierenZusammenfassung – Eindeutige ZahlenÜbe selbstständig: Online-C++-Compiler