Löschen von Vektorelementen nach Wert in C
Bei der Arbeit mit Vektoren in C kommt es häufig vor, dass bestimmte Elemente entfernt werden müssen. Typischerweise erfolgt dies durch Angabe der Position des zu löschenden Elements mit erase(myVector.begin() 4). Es kann jedoch Fälle geben, in denen Sie ein Element basierend auf seinem Wert und nicht auf Basis seiner Position löschen möchten.
Um dies zu erreichen, stellt C die Erase-Remove-Sprache bereit, die std::remove() und kombiniert std::erase()-Funktionen. Hier ist ein Beispiel für die Implementierung:
#include <algorithm> int main() { vector<int> myVector = {5, 9, 2, 8, 0, 7}; myVector.erase(std::remove(myVector.begin(), myVector.end(), 8), myVector.end()); return 0; }
Die Funktion std::remove() benötigt drei Argumente: den Start- und End-Iterator des Vektors und den zu entfernenden Wert. Sie ändert den Vektor, indem sie alle Elemente mit dem angegebenen Wert an das Ende des Vektors verschiebt und sie effektiv von ihren ursprünglichen Positionen entfernt.
Die Funktion std::erase() löscht dann den Bereich der Elemente aus dem Vektor . In diesem Beispiel werden alle Elemente von der von std::remove() zurückgegebenen Position bis zum Ende des Vektors gelöscht.
Durch die Verwendung der Erase-Remove-Sprache können Sie Elemente bequem basierend auf ihrem Wert löschen. Verbesserung der Effizienz und Wartbarkeit Ihres Codes.
Das obige ist der detaillierte Inhalt vonWie lösche ich Vektorelemente nach Wert in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!