Einführung
In diesem Lab lernst du, wie du die erase()
-Methode verwendest, um Elemente in einer Map im C++ STL zu entfernen. Die Map ist ein Container, der Daten in Schlüssel-Wert-Paaren speichert.
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
In diesem Lab lernst du, wie du die erase()
-Methode verwendest, um Elemente in einer Map im C++ STL zu entfernen. Die Map ist ein Container, der Daten in Schlüssel-Wert-Paaren speichert.
Erstelle eine Map-Instanz in der Datei main.cpp, indem du diese Header-Dateien am Anfang der Datei einbindest:
#include <iostream>
#include <bits/stdc++.h>
Deklariere eine Map mit ganzzahligen Schlüsseln und Werten wie folgt:
map<int, int> m;
Füge zufällige Daten in die Map ein, indem du die insert()
-Methode verwendest. Die make_pair()
-Methode kann verwendet werden, um Schlüssel-Wert-Paare der Map zuzuweisen.
m.insert(make_pair(3, 9));
m.insert(make_pair(2, 4));
m.insert(make_pair(5, 25));
m.insert(make_pair(9, 81));
m.insert(make_pair(1, 1));
Verwende die erase(x)
-Methode, um ein Element mit dem Schlüssel eines Wertes von x
aus der Map zu entfernen. Wenn der Wert nicht existiert, gibt es 0 zurück, andernfalls 1.
int j = m.erase(5);
if(j == 1) {
cout << "\nDas Map-Element mit dem Schlüssel 5 wurde gelöscht.";
} else {
cout << "\nDas Map-Element mit dem Schlüssel 5 existiert nicht.";
}
Du kannst auch ein Element mit einem Schlüsselwert entfernen, der in der Map nicht existiert, ohne dass das Programm abstürzt. Beispielsweise:
int k = m.erase(6);
if(k!= 0){
cout << "\n\nDas Map-Element mit dem Schlüssel 6 wurde gelöscht\n\n";
} else {
cout << "\n\nDas Map-Element mit dem Schlüssel 6 existiert nicht.";
}
Um den Code auszuführen, navigiere im Terminal zum Verzeichnis, das die Datei main.cpp enthält, und gebe die folgenden Befehle ein, um zu kompilieren und auszuführen:
$ g++ main.cpp -o main
$./main
Im Folgenden findest du den vollständigen Code zu Deinem Nachweis:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << "\n\nWillkommen bei LabEx :-)\n\n\n";
cout << "===== Programm zur Demonstration des Funktionsweise der erase()-Methode in einer Map (Teil 1), in C++ ===== \n\n\n";
cout << "*** Die erase(x)-Methode löscht das Map-Element mit dem Schlüssel x und gibt 1 zurück, wenn es gefunden wird, andernfalls 0. *** \n\n";
// Map-Deklaration (Map mit Schlüssel und Wert als Ganzzahlen)
map<int, int> m;
// Befüllen der Elemente mit der insert()-Methode.
cout << "\n\nFülle die Map mit Schlüssel-Wert-Paaren von Ganzzahlen in zufälliger Reihenfolge."; //Die Map speichert sie automatisch in aufsteigender Reihenfolge der Schlüssel
//make_pair() wird verwendet, um ein Schlüssel-Wert-Paar in die Map einzufügen
m.insert(make_pair(3, 9));
m.insert(make_pair(2, 4));
m.insert(make_pair(5, 25));
m.insert(make_pair(9, 81));
m.insert(make_pair(1, 1));
cout << "\n\nDie Anzahl der Elemente in der Map beträgt: " << m.size();
cout << "\n\nDie Elemente der Map m sind: ";
map<int, int>::iterator i;
int j = 0;
for (i = m.begin(); i!= m.end(); i++)
{
cout << "( " << i->first << ", " << i->second << " ) ";
}
//Suchen des Map-Elements mit dem Schlüssel 5
j = m.erase(5);
if (j == 1)
{
cout << "\n\nDas Map-Element mit dem Schlüssel 5 wurde gelöscht.";
}
else
{
cout << "\n\nDas Map-Element mit dem Schlüssel 5 existiert nicht.";
}
cout << "\n\nDie Anzahl der Elemente in der Map wird: " << m.size();
cout << "\n\nDie Elemente der Map m nach der Löschoperation sind: ";
j = 0;
for (i = m.begin(); i!= m.end(); i++)
{
cout << "( " << i->first << ", " << i->second << " ) ";
}
j = m.erase(6);
if (i!= m.end())
{
cout << "\n\nDas Map-Element mit dem Schlüssel 6 wurde gelöscht\n\n";
}
else
{
cout << "\n\nDas Map-Element mit dem Schlüssel 6 existiert nicht.";
}
cout << "\n\n\n";
return 0;
}
In diesem Lab hast du begonnen, eine Map zu erstellen und sie dann mit Daten zu füllen. Anschließend hast du gelernt, wie die erase()
-Methode verwendet wird, um Elemente aus der Map mithilfe ihrer Schlüssel zu entfernen. Wir hoffen, dass die obigen Beispiele dir helfen, zu verstehen, wie man Elemente aus einer Map in der C++ STL entfernt.