Heim >Backend-Entwicklung >C++ >Wie entferne ich ein Element aus einem std::vector nach Index in C?

Wie entferne ich ein Element aus einem std::vector nach Index in C?

DDD
DDDOriginal
2024-12-11 20:57:15270Durchsuche

How to Remove an Element from a std::vector by Index in C  ?

Löschen eines Elements aus einem std::vector nach Index

In C kann dies bei der Arbeit mit einem std::vector der Fall sein Fälle, in denen das Entfernen eines Elements anhand seines Index erforderlich ist.

Stellen Sie sich ein Szenario vor, in dem Sie einen Vektor mit ganzen Zahlen haben und löschen müssen das n-te Element.

Lösung:

Um ein einzelnes Element an Position n zu löschen, verwenden Sie einfach std::erase mit einem Iterator an die gewünschte Position. So würden Sie es machen:

std::vector<int> vec;

vec.push_back(6);
vec.push_back(-17);
vec.push_back(12);

// Deletes the second element (vec[1])
vec.erase(std::next(vec.begin()));

std::next(vec.begin()) gibt einen Iterator zum zweiten Element zurück, das dann gelöscht wird.

Wenn Sie möchten Löschen Sie mehrere aufeinanderfolgende Elemente und verwenden Sie Erase mit einer Reihe von Iteratoren:

// Deletes the second through third elements (vec[1], vec[2])
vec.erase(std::next(vec.begin(), 1), std::next(vec.begin(), 3));

Das obige ist der detaillierte Inhalt vonWie entferne ich ein Element aus einem std::vector nach Index in C?. 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