Element eines Vektors entfernen
-
Hi,
es gibt hier nur Probleme mit erase().
Die anderen Methoden funktionieren.#include <iostream> #include<vector> using namespace std; int main() { vector<int> ve(3); ve.push_back(7); ve.push_back(6); ve.erase(3); //no matching member function for call to 'erase' return 0; }
-
Was erwartet erase als Parameter? Ist 3 von diesem Typ?
-
Erase erwartet das Element von Typ Integer, welches gelöscht werden soll.
3 ist von diesem Typ.
-
erase erwartet einen Iterator und nicht einfach nur nen Integer soweit ich weiß?
-
// vector iterator erase (const_iterator position); iterator erase (const_iterator first, const_iterator last);
Also:
ve.erase(ve.begin()+3);
Wenn es möglich ist, sollten allerdings Operationen am Ende bevorzugt werden (
push_back
undpop_back
im Ggs. zuinsert
underase
).
-
Wobei die
3
hier die Position ist (nicht der enthaltene Wert)!
Dafür gibt es das "erase-remove idiom", s.a. C++ Erase vector element by value rather than by position?
-
Hey, vielen Dank für die Antworten!