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 <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.