Je veux être capable d'insérer un élément au milieu (ou un autre emplacement) dans le vecteur sans écraser l'élément existant.Quelle est l'approche la plus indolore pour insérer un élément au milieu du vecteur std :: vector
Dites que mon vecteur a 3 6 9 10 et je veux insérer 7 juste après 6. Comment devrait-il être fait sans causer de problèmes? C'est un fonctionnement très peu fréquent, donc l'efficacité n'est pas un problème ici. Aussi, à ce stade, je ne peux pas passer à un autre conteneur (par exemple: std :: list) qui est bon pour les insertions au milieu.
Est-ce que std::insert
dans le vecteur fera ce que je veux? Comment?
grâce
Vous ne pouvez pas insérer un élément au milieu d'un vecteur sans écraser tous les éléments après la position de dans sertion: ils seront déplacés à la fin du vecteur pour laisser de la place au nouvel élément (l'élément n sera copié à n + 1, l'élément n-1 sera copié à n, etc. supplantant ainsi les éléments existants). –
Ce qui, bien sûr, signifie que tous les itérateurs existants et les pointeurs dans le vecteur seront invalidés (comme ils peuvent l'être après un vieux push_back(), d'ailleurs). – ceo