Löschen von Vektorelementen basierend auf dem Wert in C
Das Problem tritt auf, wenn versucht wird, ein Vektorelement basierend auf seinem Wert und nicht auf seiner Position zu löschen . Betrachten Sie einen Vektor mit den folgenden Werten:
5 9 2 8 0 7
Normalerweise löschen wir das vierte Element, das den Wert „8“ enthält, mit diesem Code:
myVector.erase(myVector.begin() + 4);
Es gibt jedoch noch mehr direkte Möglichkeit, ein Element anhand seines Werts zu löschen?
std::remove() zum Rettung
Hier kommt die Funktion std::remove() ins Spiel. Es entfernt Elemente aus einem Bereich, die einem bestimmten Wert entsprechen. In Kombination mit erase() können wir die Erase-Remove-Sprache verwenden, um unser Ziel zu erreichen:
#include <algorithm> ... myVector.erase(std::remove(myVector.begin(), myVector.end(), 8), myVector.end());
Diese Kombination durchläuft den Vektor, entfernt alle Vorkommen von „8“ und löscht dann den geänderten Bereich. Der resultierende Vektor enthält nun:
5 9 2 0 7
Das obige ist der detaillierte Inhalt vonWie lösche ich Vektorelemente basierend auf dem Wert in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!