Heim >Backend-Entwicklung >C++ >Wie entferne ich Elemente effizient nach Wert aus einem STL-Vektor?
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!