Einführung
In diesem Lab werden wir lernen, wie man Multiset aus der Standardbibliothek (STL) in C++ implementiert. Ein Multiset ähnelt einem Set darin, dass es eindeutige Werte speichert. Allerdings unterscheidet es sich vom Set dadurch, dass es Duplikate zulässt und keine Indexierungsfunktionen wie bei Vektoren bietet.
Erstellen Sie eine C++-Datei im Projektverzeichnis
Wir werden eine neue Datei namens main.cpp im Verzeichnis ~/project mit dem folgenden Befehl erstellen:
touch ~/project/main.cpp
Fügen Sie die Header-Dateien hinzu
Fügen Sie die folgenden Header-Dateien für Multiset, Eingabe/Ausgabe-Streams, die Standardbibliothek und Iteratoren hinzu, wie im folgenden Beispiel gezeigt:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
Deklarieren Sie das Multiset
Deklarieren Sie ein Multiset für Ganzzahlwerte, wie unten gezeigt:
multiset<int> s;
Fügen Sie Werte in das Multiset ein
Fügen Sie Elemente in das Multiset mit der Methode insert() ein, wie im folgenden Beispielcode gezeigt. Es werden die Werte 5, 39, 5, 82, 39 und 54 in das Multiset eingefügt:
s.insert(5);
s.insert(39);
s.insert(5);
s.insert(82);
s.insert(39);
s.insert(54);
Geben Sie die Größe des Multisets aus und traversieren Sie das Multiset
Geben Sie die Anzahl der Elemente im Multiset aus, indem Sie auf die Eigenschaft size() zugreifen, und traversieren Sie alle Elemente des Multisets mit einem Iterator, wie unten gezeigt:
cout << "The number of elements in the Multiset : " << s.size() << "\n";
multiset<int>::iterator it;
cout << "\nElements of the Multiset : ";
for (it = s.begin(); it!= s.end(); it++)
cout << *it << " ";
cout << endl;
Löschen Sie Elemente kleiner als X
Löschen Sie alle Elemente, die kleiner als ein gegebener Wert x sind, mit der Methode erase(). Die Methode erase() löscht alle Elemente vom Anfang des Multisets bis zum gegebenen Wert, ausgenommen das Element mit dem gegebenen Wert, wie unten gezeigt:
s.erase(s.begin(), s.find(x));
Kompilieren und ausführen Sie das Programm
Kompilieren Sie das Programm über das Terminal. Verwenden Sie den folgenden Befehl, um das Programm zu kompilieren:
g++ main.cpp -o main && ./main
Überprüfen Sie die Ausgabe
Nachdem das Programm erfolgreich ausgeführt wurde, erhalten Sie die folgende Ausgabe:
The number of elements in the Multiset : 6
Elements of the Multiset : 5 5 39 39 54 82
Zusammenfassung
Dieses Lab (Praktikum) bot einen Überblick über Multisets in C++ unter Verwendung der Standard Template Library (STL). Wir haben behandelt, wie man ein Multiset deklariert, Werte in es einfügt und seine Methoden untersucht. Wir haben auch gelernt, wie man Elemente, die kleiner als ein bestimmter Wert sind, löscht und das Multiset mit Iteratoren durchläuft. Schließlich haben wir den Code über das Terminal kompiliert und ausgeführt, um die Ausgabe zu überprüfen.



