Heim > Backend-Entwicklung > C++ > Hauptteil

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

DDD
Freigeben: 2024-11-08 08:21:02
Original
1020 Leute haben es durchsucht

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
Nach dem Login kopieren

Normalerweise löschen wir das vierte Element, das den Wert „8“ enthält, mit diesem Code:

myVector.erase(myVector.begin() + 4);
Nach dem Login kopieren

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());
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage