Heim > Backend-Entwicklung > C++ > Hauptteil

Wie entferne ich Elemente mit einem bestimmten Wert aus einem STL-Vektor?

Patricia Arquette
Freigeben: 2024-11-21 05:57:09
Original
892 Leute haben es durchsucht

How to Remove Elements with a Specific Value from an STL Vector?

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());
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage