set stl
Lernen Sie SET in STL schnell mit einfachen Beispielen.
Wir werden uns den STL-Container - Sets hier in diesem Tutorial genauer ansehen. Sets sind assoziative Container mit eindeutigen Elementen in einer bestimmten Reihenfolge.
Der Wert eines Elements in der Menge ist auch der Schlüssel, mit dem darauf zugegriffen wird. Alle Elemente im Set müssen eindeutig sein. Wir können die Elemente in der Menge nicht ändern, sobald sie eingefügt sind. Wir können die Elemente jedoch einfügen oder löschen.
=> Hier finden Sie eine vollständige C ++ FREE-Schulungsserie.
Was du lernen wirst:
SET In STL
Um set zu implementieren, müssen wir den Header in unser Programm aufnehmen.
Wie erstelle ich ein Array vom generischen Typ in Java?
#include
Wir können eine Menge wie folgt deklarieren:
set myset;
Zum Beispiel,Wenn wir eine Menge wollen, myset eines Elements vom Integer-Typ, können wir die Menge wie folgt deklarieren:
set myset;
Operationen am Set
Der Set-Container unterstützt auch ähnliche Operationen wie eine Karte, die wir bereits besprochen haben. Im Folgenden sind einige der grundlegenden Operationen aufgeführt, die von set unterstützt werden.
- Start : Gibt den Iterator zum ersten Element der Menge zurück.
- Ende : Gibt den Iterator an das Element zurück, das auf das letzte Element der Menge folgt.
- einfügen : Fügt ein neues Element in die Menge ein.
Die Einfügeoperation für das Set hat drei Varianten:
-
-
- Einfügen (Element): Dadurch wird das Element direkt in die Menge eingefügt und die Menge neu angeordnet.
- einfügen (Position, Hinweis): Hier geben wir die Position an, an der das Element eingefügt werden soll.
- insert (iterator.begin (), iterator.end ()): In dieser Variante können wir den Bereich wie ein Array oder eine andere Menge direkt in die Menge einfügen.
-
- löschen : Entfernt ein Element aus der Menge.
- Größe : Gibt die Größe des Sets zurück.
- maximale Größe : Gibt die maximale Größe zurück, die das Set aufnehmen kann.
- leer : Gibt zurück, ob der Satz leer ist.
- klar : Entfernt alle Elemente aus dem Set.
- finden : Findet ein Element in der Menge. Wenn ein Element gefunden wird, gibt es den Iterator an dieses Element in der Menge zurück. Wird es nicht gefunden, wird ein Iterator an das Ende des Satzes zurückgegeben.
Im Folgenden finden Sie ein Programm, das die Verwendung einiger wichtiger Funktionen von SET demonstriert.
#include #include #include using namespace std; int main() { set myset; myset.insert(140); myset.insert(130); myset.insert(160); myset.insert(120); cout<<'
Size of myset: '< Ausgabe:
Größe des Mysets: 4
Das eingestellte Myset ist: 120 130 140 160
Nach dem Einfügen von 100 lautet das eingestellte Myset: 100 120 130 140 160
Nach dem Einfügen des Arrays arr lautet das eingestellte myset: 100 110 120 130 140 150 160
Nach dem Entfernen von Elementen unter 130, myset: 130 140 150 160
Wie in der obigen Ausgabe gezeigt, erstellen wir eine Menge mit einer einfachen Einfügefunktion.
Als nächstes fügen wir das Element 100 unter Verwendung einer anderen Variante der Einfügefunktion in die Menge ein, indem wir die Iteratorreferenz und den Elementwert 100 übergeben. Wir sehen, dass nach dem Einfügen die Menge neu angeordnet wird und die Reihenfolge der Elemente beibehalten wird.
Als nächstes fügen wir mit der Einfügefunktion ein Array {110,150,150} ein. Wenn die Set-Ausgabe nach dem Einfügen eines Arrays angezeigt wird, wird nur ein Wert von 150 in das Set eingegeben. Dies liegt daran, dass alle Elemente im Set eindeutig sind.
Wir zeigen auch die Größe des Sets an. Als nächstes finden wir mit der Suchfunktion die Elemente, die kleiner als 130 sind, und rufen dann die Löschfunktion auf, um diese Elemente zu entfernen. Dann zeigen wir die resultierende Menge an.
Hier dreht sich alles um den eingestellten Container. Als nächstes werden wir Multisets diskutieren, die eine Erweiterung des Set-Containers darstellen.
Multiset
Ein Multiset ist ein assoziativer Container, der in allen Aspekten ähnlich ist, mit Ausnahme eines Unterschieds, d. H. Mehrere Elemente können den gleichen Wert haben.
Die Deklaration für Multiset lautet wie folgt:
multiset mset;
Ein Multiset von ganzzahligen Elementen kann wie folgt deklariert werden:
Multiset-Mset;
Verschiedene von Multiset unterstützte Operationen ähneln denen, die von Set unterstützt werden.
Jetzt werden wir direkt ein Multiset-Beispiel diskutieren, das die verwendete Operation demonstriert.
char in string c ++ konvertieren
#include #include #include using namespace std; int main() { multiset myset; myset.insert(11); myset.insert(13); myset.insert(13); myset.insert(10); cout<<'
Size of myset: '< Ausgabe:
Größe des Mysets: 4
Nach dem Einfügen von vier Elementen lautet das Multiset-Myset: 10 11 13
13
Nach dem Einfügen von 15 lautet das Multiset-Myset: 10 11 13 13 15
Nach dem Entfernen von Elementen unter 15, myset: 15
Der Screenshot der Ausgabe ist unten angegeben:
Wie in der obigen Ausgabe gezeigt, geben wir zunächst vier Elemente in das Multiset ein, von denen zwei gleich sind. Im Gegensatz zu einer Menge werden diese Elemente jedoch erfolgreich in das Multiset eingefügt. Dann fügen wir ein weiteres Element 15 ein, indem wir die Position durch einen Iterator bereitstellen, der erfolgreich eingefügt wird.
Als nächstes finden wir Elemente unter 15 im Multiset und rufen die Löschfunktion für diese Elemente auf. Schließlich zeigen wir das Multiset an.
Ungeordnetes Set
Bisher haben wir in diesem Tutorial Set und Multiset besprochen.
Während die Menge eine geordnete Folge von eindeutigen Schlüsseln ist, haben wir einen anderen assoziativen Container, der als 'ungeordnete Menge' bezeichnet wird und eine Reihe von Schlüsseln oder Elementen ist, die in beliebiger Reihenfolge gespeichert sind. Dies bedeutet, dass die Elemente in der ungeordneten Menge „ungeordnet“ sind.
Ähnlich wie bei einer ungeordneten Zuordnung wird die ungeordnete Menge auch unter Verwendung einer Hash-Tabelle implementiert, bei der die Schlüssel in Indizes der Hash-Tabelle gehasht werden. Aufgrund der Verwendung einer Hash-Tabelle ist es nicht möglich, die Reihenfolge der Elemente im Gegensatz zu der Menge beizubehalten, die eine ausgeglichene Baumstruktur verwendet.
Der Header für die Implementierung eines ungeordneten Satzes lautet.
#include
Wir deklarieren eine ungeordnete Karte vom Typ Integer wie folgt:
Unordered_set uset;
Von unordered_set unterstützte Vorgänge ähneln denen, die von unordered_map unterstützt werden. Dies wird in unseren Tutorials auf der Karte erläutert.
Im Folgenden finden Sie ein Beispiel, das die verschiedenen Operationen für unordered_set demonstriert.
#include #include using namespace std; int main() { unordered_set uset; unordered_set :: iterator it; for(int i=0;i<5;i++){ uset.insert(i+2); } cout<<'
Size of uset: '< Ausgabe:
Verwendungsgröße: 5
Elemente in ungeordneter Menge sind: 99 39 6 5 26 4 3 13 2
Gefundener Schlüssel = 13
umap Bucket_Count: 11
Bucket_size: 2
Der Screenshot der obigen Ausgabe ist unten angegeben.
Wie in der obigen Ausgabe gezeigt, fügen wir zuerst 5 Elemente in die ungeordnete Menge ein und fügen dann weitere 4 Elemente ein, die die Verwendung von Variationen der Einfügefunktion demonstrieren. Dann zeigen wir den Inhalt des ungeordneten Satzes an.
Als nächstes verwenden wir die Suchfunktion, um festzustellen, ob der Schlüssel = 13 in der ungeordneten Menge vorhanden ist oder nicht.
Danach zeigen wir zwei weitere Funktionen: 'Bucket_Count' und 'Bucket_Size'. Diese Funktionen beziehen sich auf die interne Implementierung der ungeordneten Karte.
Dieser Container unterstützt auch die anderen Iteratorfunktionen und -funktionen wie max_size, clear, erase, empty usw., die anderen STL-Containern ähnlich sind.
Fazit
Damit sind wir am Ende unseres Tutorials zu SET in STL angelangt.
Wir hoffen, dass die Themen, die im Rahmen dieser STL-Tutorials behandelt werden, Ihnen helfen, STL und seine verschiedenen Container besser zu verstehen.
Möglichkeiten, Anime kostenlos zu sehen
=> Lesen Sie hier die beliebte C ++ - Schulungsserie.
Literatur-Empfehlungen