Löschen im zwei-dimensionalen Container Vector
-
Hallo,
habe ein zwei-dimensionales Vector-Gebilde mit int-Zahlen:
vector < vector<int> > region;Möchte jetzt nicht einen einzigen int-Wert löschen, sondern eine ganze Reihe an int-Werten, die in einem Vektor stehen. Also z.b. den Vektor[2] löschen, in dem die Werte Vektor[2][0],Vektor[2][1],Vektor[2][2],Vektor[2][3],etc. drin stehen.
Wie kann man das machen ? Geht das überhaupt ? Wird die Lücke dann geschlossen, oder sollte ich eine andere Container-Klasse verwenden?
Habs schon mit dem Iterator versucht
Vektor.erase(pos) aber hat er nicht akzeptiert.danke
-
Diese lösung gilt jetzt für std::vector<> aber es gibt Container bei denen das nicht aufgrund der iterator eigenschaften funktioniert.
Vektor.erase( Vektor.begin() + pos);
-
Hmmm,
bei mir bringt er den Fehler:
Zwei Zeiger koennen nicht addiert werden
für die Zeile:
Vektor.erase( Vektor.begin() + pos);
-
pos sollte auch ne zahl sein, und kein iterator
Oder was ist pos bei dir?
typedef std::vector< std::vector<int> > VecType; VecType vec( 3 , std::vector<int>( 3, 10 ) ); // 3x3 mit jeweils 10 als wert vec.erase( vec.begin() + 1 ); // <-- so meine ich das
-
Ja,
pos war bei mir Iterator.
Ausgezeichnet. Funktioniert jetzt so, wie ich´s wollte.
vielen dank
