C ++ Multimap

C ++ Multimap
Heute erfahren wir etwas über Multimap und warum wir Multimap verwenden. Wir werden die Schreibimplementierung und die wichtigen Funktionen von Multimap durch detaillierte Beispiele lernen. Bevor wir jedoch auf das Multimap springen, werden wir die Grundlagen der Karte in C ++ kennen.

In C ++ sind Karten die Container, die die Datenelemente in Schlüsselwertpaaren speichern. In Karten behalten diese Schlüsselwertpaare Datenelemente bei. Dies bedeutet, dass jeder Schlüssel seinen Elementwert hat, aber der Schlüssel muss eindeutig sein, um schnell zugegriffen zu werden. Standardmäßig sind die Schlüsselwertpaare in sortierter Reihenfolge angeordnet.

Einführung

In C ++ sind Multimaps der Container, der die Elemente in Schlüsselwertpaaren auf organisierte Weise behält, damit sie effizient und schnell arbeiten können. Diese Schlüsselwerte werden verwendet, um die Elemente zu ordnen und einzigartig identifiziert, damit der mit diesem Schlüssel verbundene Inhalt in kartierten Werten gespeichert ist. Der einzige signifikante Unterschied zwischen dem Multimap und der Karte ist die Möglichkeit wiederholter Schlüssel, die nicht eindeutig sind, und verwendet das “<” operator to compare the keys.

Syntax

In Multimap STL schreiben wir das Schlüsselwort „Vorlage“, um den Datentyp als Parameter zu übergeben, damit wir den Code nicht für jeden Datentyp schreiben müssen, und dann den „„ „„ größeren “als den Operator, um die Multimap -Klasse zu schließen.

Parameter

Taste: Wird verwendet, um den Schlüsseltyp zu untersuchen, um den Schlüssel in einem Multimap zu speichern.

Typ: wird verwendet, um den Datentyp des zugeordneten Wertes in einem Multimap zu mitteilen.

vergleichen: ist ein optionaler Parameter und ermöglicht es Ihnen, zwei Elementwerte als Sorttasten zu vergleichen, um herauszufinden, wie sie in der Multimap angeordnet werden sollten. Im Standard wird das binäre Prädikat weniger verwendet.

Alloc: wird verwendet, um die Werte in Multimap zuzuordnen.

Beispiel

Hier ist ein einfaches Beispiel für das Multimap. Beginnen wir zunächst die Implementierung des Beispiels und verstehen wir auch, was wir in diesem Beispiel getan haben. Vorher brauchen wir jedoch einen C ++ - Compiler, in dem wir den Beispielcode schreiben und ausführen. Öffnen Sie also den C ++ - Compiler.

Einschließlich grundlegender Bibliotheken

In jedem Programm von C ++ müssen wir die wichtigen und grundlegenden Bibliotheken in Bezug auf unser Programm einbeziehen, damit wir den Code der vordefinierten Funktion von C nicht schreiben müssen++. Durch die Verwendung von Paketen ist unser Code präzise und leicht zu verstehen und kompiliert auch effizient. Wir schreiben das Schild "#" für jedes Paket, das den Compiler zum Laden der Header -Datei leitet. Dann schreiben wir das Schlüsselwort "Include", damit der Compiler versteht, dass wir jedes Paket in C einfügen++. Dann öffnen wir den „“ Operator.

In diesem Beispiel haben wir drei Bibliotheken verwendet; "IOstream" gibt die Daten vom Benutzer ein und zeigt die Daten dem Benutzer an. Die zweite ist "String". Wenn wir also im gesamten Programm einen Stringwert verwenden.

#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;

Deklarieren und Initialisieren der Schlüsselwertpaare

Dann schreiben wir die Funktion main () im Programm, damit wir die tatsächliche Codezeile schreiben können, die wir implementieren möchten. Zunächst werden wir das Multimap-Tupel mit dem Namen "Mulmap" des Schlüsselwertpaares "int" und "String" deklarieren und einige Daten darin initialisieren. Für String schreiben wir die Daten in doppelten Anführungszeichen. Anschließend überprüfen wir die Größe des „Mulmap“ -Tupel. Um die Elemente eines Tupels nacheinander anzuzeigen, haben wir "for Loop" angerufen.

int main ()

Multimap mulmap =
1, "Islamabad",
2, "Lahore",
3, "multan",
4, "Karachi"
;
Cout << "The size of multimap is: " << mulmap.size()
<Cout << "Elements in multimap are: " << endl;
Cout<<"\tKEY\t\tELEMENT\n";
für (auto itr: mulmap)
Cout << "\t" << itr.first <<"\t\t"<< itr.second << endl;

Hier ist die Ausgabe des vorherigen Teils des Codes. Wie Sie sehen, haben wir jetzt die Multimap-Tupelgröße und die Elemente der Schlüsselwertepaare.

Einfügen neuer Daten mit der Funktion Insert ()

Nachdem wir das Multimap deklariert haben, möchten wir eine der Funktionen des Multimaps implementieren, nämlich die Funktion Insert (). Da wir bereits einige Daten in das Multimap -Tupel eingefügt haben, möchten wir einige neue Daten einfügen. Dafür schreiben wir den Multimap -Tupelnamen „Mulmap“ und verkettet dann die Funktion Insert () damit. Schreiben Sie in Mulmap-Klammern das Schlüsselwort „Make-pair“, da wir Daten in Multimap in Paaren übergeben, und schreiben Sie dann das neue Paar, in dem wir Daten in das vorhandene „Mulmap“ -Tupel einfügen möchten.

Und dann haben wir "für Schleife" verwendet, um die Werte in der Shell einzeln in sortierter Reihenfolge anzuzeigen. Nachdem wir die Schlüsselwertpaare gedruckt haben, möchten wir die Größe des aktualisierten „Mulmap“ -Tupels erneut überprüfen, sodass wir die Funktion "size () erneut verwendet haben und die Funktion Size () in der cout () -Methode übergeben haben, damit wir können, damit wir können Zeigen Sie dem Benutzer die Größe der „Mulmap“ an.

Cout << "\nInserting New Elements in Multimap: " << endl;
Cout<<"\tKEY\t\tELEMENT\n";
Mulmap.Insert (make_pair (0, "rawalpindi"));
Mulmap.Insert (make_pair (5, "hyderabad"));
für (auto itr: mulmap)
Cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;

Cout <<"Elements in multimap after updating: " << mulmap.size() << endl;

Schauen wir uns die Ausgabe des vorherigen Datenabschnitts auf Multimap an, wo wir neue Daten eingefügt haben. Wie Sie sehen, werden Schlüsselwertpaare organisiert angezeigt. Und nachdem wir die Schlüsselwertpaare aktualisiert haben, haben wir die Größe des Multimaps als 6.

Entfernen von Daten aus dem Multimap mithilfe der Erase () -Funktion

Um Datenelemente aus dem Mulmap -Tupel zu entfernen. Andererseits überprüfen wir die Größe des „Mulmap“ -Tupels mit der Funktion Size ().

Cout<<"\nRemoving elements from multimap: \n";
Cout<<"\tKEY\t\tELEMENT\n";
Mulmap.löschen (Mulmap.begin (), mulmap.finde (4));
für (auto itr: mulmap)
Cout << "\t" << itr.first <<"\t\t"<< itr.second << "\t" << endl;

Cout <<"Elements in multimap after removing: " << mulmap.size() << endl;

Hier ist die Ausgabe des illustrierten Teils, den wir oben implementiert haben. Wie unten gezeigt, beträgt die Größe des „Mulmap“ -Tupels 2:

Überprüfen Sie die Obergrenze des vorhandenen Mulmap -Tupels

Um das erste Element des aktualisierten Tupels von „Multimap“ zu überprüfen, verwenden wir die Funktion Upper_Bound () und übergeben den Schlüsselwert an die Funktion.

Cout << “\nElement on the Upper bound of multimap is: “ << endl;
Cout<<”\tKEY\t\tELEMENT\n”;
Cout << “\t” << mulmap.upper_bound(0)->Erste << “\t\t” << mulmap.upper_bound(0)->zweite << endl;

Wie Sie gesehen haben, haben wir einen 0 -Wert an die Funktion obere_bound () übergeben. Wir haben jedoch die Obergrenze des Schlüsselelements 4, da jetzt das „Mulmap“ -Tupel nur zwei Schlüsselelemente enthält und die obere unten angezeigt wird:

Überprüfen Sie die untere Grenze im vorhandenen Mulmap -Tupel

Lassen Sie uns nun das letzte Element des „Mulmap“ -Tupels unter Verwendung der Funktion lower_bound () des Multimaps verwenden und durch die Cout () -Methode drucken.

Cout << "\nElement on the lower bound of multimap is: " << endl;
Cout<<"\tKEY\t\tELEMENT\n";
Cout << "\t" << mulmap.lower_bound(5)->Erste << "\t\t" << mulmap.lower_bound(5)->zweite << endl;

Hier ist die Ausgabe der Untergrenze des „Mulmap“ -Tupels:

Am Ende kehren wir 0 zur main () -Funktion zurück und schließen die lockigen Klammern:

Abschluss

In diesem Artikel haben wir das Multimap gelernt, indem wir einfache Beispiele mit detaillierten Erklärungen implementiert haben. Wir haben den Schreibstil des Multimaps besprochen. Wir haben auch einige der wichtigen Funktionen von Multimap in C ++ mit einer detaillierten Erklärung für jede Codezeile gelernt.