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
    J

    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



  • 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


Anmelden zum Antworten