Elemente aus std::vector nach Index löschen
In C ist std::vector ein Container, der Elemente effizient im zusammenhängenden Speicher speichert Standorte. Um Elemente aus einem Vektor zu entfernen, wird die Löschfunktion verwendet.
Problem: Bei einem std::vector wird das Element an einem bestimmten Ort gelöscht index.
Beispiel:
std::vector<int> vec; vec.push_back(6); vec.push_back(-17); vec.push_back(12); vec.erase(???); // How to delete the second element?
Lösung:
Um ein einzelnes Element nach Index zu löschen, verwenden Sie std: :next, um den Vektoriterator um den gewünschten Index zu erhöhen:
vec.erase(std::next(vec.begin(), elementIndex));
Um einen Bereich zu löschen Geben Sie für die Anzahl der Elemente die Anfangs- und Enditeratoren an:
int startIndex = 1; int endIndex = 3; vec.erase(std::next(vec.begin(), startIndex), std::next(vec.begin(), endIndex));
Im bereitgestellten Beispiel löscht der folgende Code das zweite Element (vec[1]):
vec.erase(std::next(vec.begin()));
Zum Löschen Verwenden Sie für das zweite und dritte Element:
vec.erase(std::next(vec.begin(), 1), std::next(vec.begin(), 3));
Das obige ist der detaillierte Inhalt vonWie lösche ich Elemente aus einem C std::vector nach Index?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!