Menu
Coddy logo textTech

Elemente entfernen

Teil des Abschnitts Logik & Ablauf der C++-Journey von Coddy — Lektion 38 von 56.

Manchmal müssen Sie Elemente aus einem Set entfernen, wenn sie nicht mehr benötigt werden. Die Methode .erase() ermöglicht es Ihnen, ein bestimmtes Element zu entfernen, indem Sie dessen Wert angeben.

So entfernen Sie ein Element aus einem Set:

std::set<int> numbers = {10, 20, 30, 40};
numbers.erase(20);  // Entfernt das Element 20

Nach dem Aufruf von .erase(20) wird das Set nur noch {10, 30, 40} enthalten. Wenn Sie versuchen, ein Element zu löschen, das nicht im Set vorhanden ist, passiert nichts – das Set bleibt unverändert und es tritt kein Fehler auf.

Dies macht .erase() sicher in der Anwendung, selbst wenn Sie nicht sicher sind, ob das Element existiert. Es ist besonders nützlich, um Sammlungen sauber zu halten, in denen Sie bestimmte Elemente basierend auf Benutzereingaben oder Programmlogik entfernen müssen.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das das Entfernen von Elementen aus einem std::set mit der Methode .erase() demonstriert. Diese Herausforderung testet Ihr Verständnis dafür, wie man gezielt Elemente sicher aus einem Set entfernt und die Ergebnisse beobachtet.

Die folgenden Eingaben werden bereitgestellt:

  • Ein Integer n, der die Anzahl der Elemente darstellt, die anfänglich zum Set hinzugefügt werden sollen
  • Anschließend n Integer, die in das Set eingefügt werden sollen
  • Ein Integer m, der die Anzahl der zu entfernenden Elemente darstellt
  • Anschließend m Integer, die die aus dem Set zu entfernenden Elemente darstellen

Ihr Programm sollte:

  1. Ein leeres std::set<int> erstellen
  2. Die Anzahl der hinzuzufügenden Elemente lesen und sie mit .insert() in das Set einfügen
  3. Die anfängliche Größe des Sets nach allen Einfügungen ausgeben
  4. Die Anzahl der zu entfernenden Elemente lesen
  5. Für jedes zu entfernende Element .erase() verwenden, um die Entfernung zu versuchen
  6. Nach jedem Entfernungsversuch die aktuelle Größe des Sets ausgeben
  7. Schließlich die verbleibenden Elemente im Set durchlaufen und sie in sortierter Reihenfolge ausgeben

Verwenden Sie das folgende exakte Ausgabeformat:

Anfängliche Set-Größe:

Initial size: [size]

Nach jedem Entfernungsversuch:

After removing [number]: size = [current_size]

Final verbleibende Elemente:

Remaining elements: [element1] [element2] [element3] ...

Denken Sie daran, dass .erase() Versuche, nicht im Set vorhandene Elemente zu entfernen, sicher handhabt – das Set bleibt unverändert und es tritt kein Fehler auf. Verwenden Sie eine bereichsbasierte for-Schleife (range-based for loop), um die verbleibenden Elemente auszugeben; diese werden automatisch in sortierter Reihenfolge angezeigt, da Sets ihre Elemente in sortierter Sequenz verwalten.

Spickzettel

Verwenden Sie .erase(), um ein bestimmtes Element aus einem Set zu entfernen, indem Sie dessen Wert angeben:

std::set<int> numbers = {10, 20, 30, 40};
numbers.erase(20);  // Entfernt das Element 20

Wenn Sie versuchen, ein Element zu löschen, das nicht im Set vorhanden ist, passiert nichts – das Set bleibt unverändert und es tritt kein Fehler auf, was die Verwendung von .erase() sicher macht.

Probier es selbst

#include <iostream>
#include <set>
using namespace std;

int main() {
    // Anzahl der hinzuzufügenden Elemente lesen
    int n;
    cin >> n;
    
    // Ein leeres Set erstellen
    set<int> mySet;
    
    // n Elemente lesen und einfügen
    for (int i = 0; i < n; i++) {
        int element;
        cin >> element;
        // Element in das Set einfügen
    }
    
    // Anzahl der zu entfernenden Elemente lesen
    int m;
    cin >> m;
    
    // TODO: Schreiben Sie Ihren Code unten
    // 1. Initiale Set-Größe ausgeben
    // 2. Für jedes zu entfernende Element .erase() verwenden und die Größe nach jedem Entfernen ausgeben
    // 3. Verbleibende Elemente im Set ausgeben
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf