Ambos são seguros, pois o push_back copiará o valor, não a referência. Se você estiver armazenando ponteiros, isso ainda é seguro no que diz respeito ao vetor, mas saiba que você terá dois elementos do vetor apontando para os mesmos dados.
Seção 23.2.1 Requisitos gerais de contêiner
16
- a.push_back (t) Anexa uma cópia de t. Requer: T deve ser CopyInsertable em X.
- a.push_back (rv) Anexa uma cópia do rv. Requer: T deve ser MoveInsertable em X.
As implementações de push_back devem, portanto, garantir que uma cópia de v[0]
seja inserida. Por exemplo, assumindo que uma implementação seria realocada antes da cópia, ela certamente não acrescentaria uma cópia v[0]
e, como tal, violaria as especificações.
push_back
. Outro pôster observou um bug , que não tratava adequadamente o caso que você descreve. Ninguém mais, pelo que sei, argumentou que isso não era um bug. Não estou dizendo que é uma prova conclusiva, apenas uma observação.