Element in einem vector löschen; Problem



  • Entschuldigt falls diese Frage zu simpel ist, aber was ist die einfachste Art ein Element in einem vector zu löschen wenn man den Index hat?

    erase() nimmt ja nur Iterator an, und es gibt keine Funktion, die den Iterator von einem Index zurückgibt. Oder kann ich einfach den Index zum Anfangs-Iterator hinzuzählen?

    Ist der Code in Ordnung?

    int index = 10;
      vector<int>::iterator i = vec.begin();
      i += index;
    

    PS:. In der Vorschau wurde der Code doppelt angezeigt, obwohl er nur einmal da stand. Ist das ein Bug?



  • jo, geht so.



  • Ok, Danke.



  • alternativ natürlich

    int index = 10;
    vector<int>::iterator i = vec.begin();
    advance(i, index);
    

    wenn du keine random access iteratoren hast und du diese herangehensweise allgemein halten willst.
    (hat natürlich für random access iteratoren keinen geschwindigkeitsverlust)


Anmelden zum Antworten