Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lösche ich Vektorelemente basierend auf dem Wert in C?

Wie lösche ich Vektorelemente basierend auf dem Wert in C?

DDD
DDDOriginal
2024-11-08 08:21:021016Durchsuche

How to Erase Vector Elements Based on Value in C  ?

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!

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