vector_element löschen
-
hallo zusammen
folgendes ist ein programm das das erste, dann das zweite,.... Element vom vector löscht (also immer das erste Element).es funzt wunderbar:#include<iostream> #include<vector> using namespace std; int erase_matrix() { // Create a vector, load it with the first ten characters of the alphabet vector<char> alphaVector; for( int i=0; i < 10; i++ ) { alphaVector.push_back( i + 65 ); } int size = alphaVector.size(); vector<char>::iterator startIterator; vector<char>::iterator tempIterator; for( i=0; i < size; i++ ) { startIterator = alphaVector.begin(); alphaVector.erase( startIterator ); // Display the vector for( tempIterator = alphaVector.begin(); tempIterator != alphaVector.end(); tempIterator++ ) { cout << *tempIterator; } cout << endl; } return 0; } int main() { erase_matrix(); return 0; }
Ausgabe:
BCDEFGHIJ
CDEFGHIJ
DEFGHIJ
EFGHIJ
FGHIJ
GHIJ
HIJ
IJ
JFrage 1:
aber was ist wenn ich nicht das erste element löschen möchte sondern was bestimmtes (z.B. das 3. oder 7. element).
Frage 2:
wie löscht man ein Element(z.B. eine Zeile) wenn wir jetzt eine matrix hätten:
vector<vector<char> > alphaVector;vielen dank
-
lilian schrieb:
Frage 1:
aber was ist wenn ich nicht das erste element löschen möchte sondern was bestimmtes (z.B. das 3. oder 7. element).
Frage 2:
wie löscht man ein Element(z.B. eine Zeile) wenn wir jetzt eine matrix hätten:
vector<vector<char> > alphaVector;vielen dank
std::vector<char>::iterator i = vec.begin(); i += 2; // 3. element vec.erase(i);
vector<vector<char> >::iterator i = vec.begin(); i += 2; // 3. zeile vec.erase(i);
edit: lies dir am besten noch einmal den artikel auf cppreference.com durch, da das dort eigentlich richtig erklärt wird.
mfg