Ambos son seguros ya que push_back copiará el valor, no la referencia. Si está almacenando punteros, eso todavía es seguro en lo que respecta al vector, pero solo sepa que tendrá dos elementos de su vector apuntando a los mismos datos.
Sección 23.2.1 Requisitos generales del contenedor
dieciséis
- a.push_back (t) Agrega una copia de t. Requiere: T será CopyInsertable en X.
- a.push_back (rv) Agrega una copia de rv. Requiere: T será MoveInsertable en X.
Por lo tanto, las implementaciones de push_back deben garantizar que se inserte una copia de v[0]
. Por contraejemplo, suponiendo una implementación que se reasignaría antes de copiar, seguramente no agregaría una copia v[0]
y, como tal, violaría las especificaciones.
push_back
. Otro póster notó un error en él , que no manejó adecuadamente el caso que usted describe. Nadie más, por lo que puedo decir, argumentó que esto no era un error. No digo que sea una prueba concluyente, solo una observación.