Dopo molte indagini con valgrind, ho concluso che std :: vector fa una copia di un oggetto che si desidera push_back.
È davvero vero? Un vettore non può conservare un riferimento o un puntatore di un oggetto senza una copia ?!
Grazie
push_back
: ci vuole un const&
. O butta via il valore (inutile) o c'è un metodo di recupero. Quindi guardiamo la firma di back
, e ritorna semplice &
, quindi o il valore originale è stato copiato o const
è stato silenziosamente gettato via (molto male: comportamento potenzialmente indefinito). Quindi supponendo che i designer di vector
fossero razionali ( vector<bool>
non resistere), concludiamo che ne fanno delle copie.
*
o&
per creare un puntatore o un riferimento.