Heim >Backend-Entwicklung >C++ >Wie lösche ich Elemente aus einem C std::vector nach Index?

Wie lösche ich Elemente aus einem C std::vector nach Index?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-14 04:22:09898Durchsuche

How to Erase Elements from a C   std::vector by Index?

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!

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