vector<int> v;
v.push_back(1);
v.push_back(v[0]);
Si le second push_back provoque une réallocation, la référence au premier entier du vecteur ne sera plus valide. Donc ce n'est pas sûr?
vector<int> v;
v.push_back(1);
v.reserve(v.size() + 1);
v.push_back(v[0]);
Cela le rend sûr?
push_back
. Une autre affiche a noté un bogue , qu'il ne traitait pas correctement le cas que vous décrivez. Personne d'autre, pour autant que je sache, n'a soutenu que ce n'était pas un bug. Ne pas dire que c'est une preuve concluante, juste une observation.