Menu
Coddy logo textTech

Ü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, das man sich merken sollte, ist, dass Sets automatisch eine sortierte Reihenfolge beibehalten. Wenn Sie das fruits-Set oben durchlaufen, wird die Ausgabe "apple", "banana", "cherry" sein – nicht die Reihenfolge, in der Sie sie eingefügt haben. Diese automatische Sortierung ist einer der Hauptvorteile 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 präsentieren.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das die automatische Sortierfunktion von std::set demonstriert, indem Wörter zu einem Set hinzugefügt werden und diese anschließend durchlaufen werden, um sie in alphabetischer Reihenfolge anzuzeigen. Diese Herausforderung testet Ihr Verständnis von bereichsbasierten for-Schleifen (range-based for loops) mit Sets und wie Sets eine sortierte Reihenfolge beibehalten.

Die folgenden Eingaben werden bereitgestellt:

  • Eine Ganzzahl n, die die Anzahl der Wörter darstellt, die dem Set hinzugefügt werden sollen
  • Anschließend n Zeichenfolgen, die die in das Set einzufügenden Wörter darstellen

Ihr Programm sollte:

  1. Ein leeres std::set<std::string> erstellen
  2. Die Anzahl der hinzuzufügenden Wörter einlesen
  3. Eine Schleife verwenden, um jedes Wort zu lesen und es mit der Methode .insert() in das Set einzufügen
  4. Eine bereichsbasierte for-Schleife verwenden, um das Set zu durchlaufen und jedes Wort auszugeben
  5. Nach der Ausgabe aller Wörter die Gesamtzahl der eindeutigen Wörter im Set anzeigen

Verwenden Sie das folgende exakte Ausgabeformat:

Für jedes Wort im Set (in alphabetischer Reihenfolge):

[word]

Zusammenfassung am Ende:

Total unique words: [count]

Verwenden Sie eine bereichsbasierte for-Schleife mit der Syntax for (const std::string& word : wordSet), um alle Elemente im Set zu durchlaufen. Das Set wird die Wörter automatisch in alphabetischer Reihenfolge präsentieren, was einen der Hauptvorteile der Verwendung von std::set demonstriert. Denken Sie daran, dass doppelte Wörter in der Eingabe vom Set automatisch ignoriert werden, sodass nur eindeutige Wörter angezeigt werden.

Spickzettel

Verwenden Sie eine bereichsbasierte for-Schleife, um alle Elemente in einem Set zu durchlaufen:

std::set<std::string> fruits = {"banana", "apple", "cherry"};

for (const std::string& fruit : fruits) {
    std::cout << fruit << std::endl;
}

Sets behalten während der Iteration automatisch eine sortierte Reihenfolge bei. Die Elemente werden in ihrer natürlichen sortierten Reihenfolge angezeigt (alphabetisch bei Strings, numerisch bei Zahlen), nicht in der Reihenfolge des Einfügens.

Probier es selbst

#include <iostream>
#include <set>
#include <string>
using namespace std;

int main() {
    // Lies die Anzahl der Wörter
    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 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;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf