Heim > Backend-Entwicklung > C++ > Hauptteil

Wie entferne ich Elemente effizient nach Wert aus einem STL-Vektor?

Patricia Arquette
Freigeben: 2024-11-18 00:11:02
Original
746 Leute haben es durchsucht

How to Efficiently Remove Elements by Value from an STL Vector?

Effiziente Werteentfernung aus STL-Vektor

Trotz der umfangreichen Funktionalitäten, die die STL-Vektorklasse bietet, fehlt ihr eine explizite Funktion zum Löschen elementebasierter Elemente auf ihre Werte. Dieser Vorgang kommt jedoch häufig vor.

Lösung: Verwendung von std::remove

STL bietet die Funktion std::remove, die Elemente nicht explizit entfernt verschiebt jedoch die beizubehaltenden Elemente an den Anfang des Containers. Es gibt einen Iterator zurück, der über diese beibehaltenen Elemente hinaus zeigt:

auto new_end = std::remove(vec.begin(), vec.end(), int_to_remove);
Nach dem Login kopieren

Um die Entfernung abzuschließen, können wir vec.erase verwenden, um die überschüssigen Elemente zu entfernen, die sich jetzt am Ende befinden:

vec.erase(new_end, vec.end());
Nach dem Login kopieren

Dieser Ansatz bereinigt effektiv Elemente mit dem Zielwert und behält gleichzeitig die zusammenhängende Struktur des Vektors bei.

Das obige ist der detaillierte Inhalt vonWie entferne ich Elemente effizient nach 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