Matrix-Zeile entfernen
-
Hallo Leutz!
Aus einer Matrix möchte ich eine ganze Zeile löschen, sodass aus einer 4 x 10- eine 3 x 10 -Matrix entsteht.
Leider ist mir ausser "clear" nichts anderes übern Weg gelaufen.Im folgendem Code lösche ich die 2. Zeile, was auch vollständig funktioniert, jedoch bleibt die Anzahl der Zeilen erhalten.
vector<double> values1; vector<double> values2; vector<vector<double>> matrix; for(double i = 0; i < 10; ++i) values1.push_back(i); for(double i = 10; i < 20; ++i) values2.push_back(i); matrix.push_back(values1); matrix.push_back(values2); matrix.push_back(values1); matrix.push_back(values2); cout << "Anzahl der Zeilen vor dem clear : " << matrix.size() << endl; matrix.at(2).clear(); cout << "Anzahl der Zeilen nach dem clear: " << matrix.size() << endl;Vielen vielen Dank im Voraus

-
-
hab die Zeile mit dem "clear" jetzt so umgeschrieben
matrix.at(2).erase(matrix.at(2).begin(), matrix.at(2).end());Wenn mein Code so stimmt, dann tut sich leider nichts bzgl. der Zeilen-Anzahl

-
Du löscht auch jetzt den Inhalt des 3. Vektors in deiner Matrix und nicht den Vektor selbst. Um das zu erreichen könntest du z.B. folgendes schreiben:
matrix.erase(matrix.begin() + 2);MfG,
ScRaT
-
Danke ScRaT_GER, hat bestens geklappt

SeppJ hat bestimmt dasselbe gemeint
