[STL] Vector iterator an Position springen



  • Das geht noch einfacher und "korrekter":

    vector<int> v;
    
    // ... v wird gefüllt
    
    unsigned gueltig = v.size();
    for (unsigned i=0; i<gueltig;)
    {
      if('soll i-tes Element gelöscht werden?')
      {
        --gueltig;
        v[i] = v[gueltig];
      }
      else
      {
        ++i;
      }
    }
    v.erase(v.begin()+gueltig,v.end());
    

    Für statistische Simulationen ist std::rand wohl auch keine gute Idee. Da gibt es qualitativ hochwertigere Pseudozufallszahlengeneratoren. Siehe Boost.Random


Anmelden zum Antworten