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
Freigeben: 2024-12-14 04:22:09
Original
898 Leute haben es durchsucht

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

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

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

Im bereitgestellten Beispiel löscht der folgende Code das zweite Element (vec[1]):

vec.erase(std::next(vec.begin()));
Nach dem Login kopieren

Zum Löschen Verwenden Sie für das zweite und dritte Element:

vec.erase(std::next(vec.begin(), 1), std::next(vec.begin(), 3));
Nach dem Login kopieren

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!

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