Heim >Backend-Entwicklung >C++ >Wie entferne ich Elemente effizient nach Wert aus einem STL-Vektor?

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-18 00:11:02817Durchsuche

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);

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());

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!

Stellungnahme:
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