Envoyé par
jblecanard
C'est tout à fait exact. Mais si tu utilises resize, par exemple pour agrandir, tu vas créer de nouveaux éléments, size() n'aura plus la même valeur et emplace_back tout comme push_back auront toujours pour effet d'ajouter encore un nouvel élément, au risque de provoquer une invalidation des références.
Si on fait un reserve(2) au début du code montré avant l'ajout du premier élément, il n'y aura pas de problème car on sait que l'ajout du deuxième ne nécessitera pas de redimensionnement. La mémoire du vector n'est redimensionnée que lorsque la mémoire additionnelle est consommée. Si on se réserve assez de mémoire additionnelle, on est tranquille :).