Elemente mit spezifischem Wert aus STL-Vektor löschen
STL-Vektoren sind beliebte Container in C, aber ihrer API fehlt eine Methode zum Entfernen von Elementen basierend auf auf ihre Werte. Dies wirft die Frage auf:
Wie kann ein Element basierend auf seinem Wert aus einem STL-Vektor entfernt werden?
Obwohl es in der Vektorklasse keine dedizierte Methode gibt, Es gibt eine Lösung, die Standardbibliotheksfunktionen verwendet.
Lösung:
Verwenden Sie die Funktion std::remove, die Elemente nicht direkt aus dem Container entfernt, sondern sie stattdessen neu anordnet . Es verschiebt Elemente, die nicht entfernt werden sollen, an den Anfang des Containers und gibt einen Iterator zurück, der auf das nächste Element nach ihnen zeigt.
Um den Entfernungsprozess abzuschließen, übergeben Sie diesen Iterator an container_type::erase, der tatsächlich entfernt Die zusätzlichen Elemente befinden sich jetzt am Ende des Containers. Hier ist ein Beispiel:
std::vector<int> vec; // Populate the vector... int int_to_remove = n; vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
Dieser Code verwendet zunächst std::remove, um nicht zu entfernende Elemente zu identifizieren und an den Anfang des Vektors zu verschieben. Anschließend wird vec.erase aufgerufen, um diese zusätzlichen Elemente dauerhaft aus dem Container zu entfernen.
Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente mit einem bestimmten Wert aus einem STL-Vektor?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!