C++-Containerklassen<set>

In der C++-Standardbibliothek<set>ist ein anonymer Container, der eine Menge von eindeutigen Elementen speichert und sie in einer bestimmten Reihenfolge sortiert.

<set>Bietet Operationen zum Nachschlagen, Einfügen und Löschen im Container. Es ist auf Basis eines Rot-Schwarz-Baums implementiert und hat daher logarithmische Zeitkomplexität für Einfügen und Löschen.

<set>Die im Container gespeicherten Elementtypen müssen die folgenden Bedingungen erfüllen:

  • Der Elementtyp muss vergleichbar sein.
  • Der Elementtyp muss kopierbar und zuweisbar sein.

Syntax

Header-Datei einbinden:

#include <set>

Deklariere einen set-Container

std::set<元素类型> 容器名;

Häufige Operationen

  • insert(元素): Füge ein Element ein.
  • erase(元素): Lösche ein Element.
  • find(元素): Suche ein Element.
  • size(): Gib die Anzahl der Elemente im Container zurück.
  • empty(): Prüfe, ob der Container leer ist.

Beispiel

Nachfolgend ein Beispiel unter Verwendung von<set>Ein einfaches Beispiel, inklusive Einfügen, Suchen, Löschen und Ausgabe der Ergebnisse.

Beispiel

#include <iostream>
#include <set>

int main() {
    // Deklariere einen Integer-Mengen-Container
    std::set<int> mySet;

    // Elemente einfügen
    mySet.insert(10);
    mySet.insert(20);
    mySet.insert(30);
    mySet.insert(40);

    // Gib die Elemente in der Menge aus
    std::cout << "Menge enthält: ";
    for (int num : mySet) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    // Element finden
    if (mySet.find(20) != mySet.end()) {
        std::cout << "20 ist in der Menge." << std::endl;
    } else {
        std::cout << "20 ist nicht in der Menge." << std::endl;
    }

    // Elemente löschen
    mySet.erase(20);

    // Gib die Elemente in der Menge erneut aus
    std::cout << "Nach dem Entfernen von 20 enthält die Menge: ";
    for (int num : mySet) {
        std::cout << num << " ";
    }
    std::cout << std::endl;

    // Prüfen, ob die Menge leer ist
    if (mySet.empty()) {
        std::cout << "Die Menge ist leer." << std::endl;
    } else {
        std::cout << "Die Menge ist nicht leer." << std::endl;
    }

    // Anzahl der Elemente in der Menge ausgeben
    std::cout << "Die Menge enthält " << mySet.size() << " Elemente." << std::endl;

    return 0;
}

Ausgabe:

Set contains: 10 20 30 40 
20 is in the set.
After erasing 20, set contains: 10 30 40 
The set is not empty.
The set contains 3 elements.

Zusammenfassung

<set>ist ein sehr nützlicher Container in der C++-Standardbibliothek, besonders geeignet für Szenarien, die schnelle Such-, Einfüge- und Löschvorgänge erfordern. Anhand der obigen Beispiele können Anfänger<set>ein klares Verständnis für seine grundlegende Verwendung erlangen. In der tatsächlichen Entwicklung kann die sinnvolle Nutzung<set>die Effizienz und Lesbarkeit des Programms verbessern.

Weitere Erweiterungen