E ok şi deep-copy, dar când ai cantităţi foarte mari de date, consumi foarte mult CPU şi RAM prin alocarea suplimentară şi copiere. N-ar fi rău să aprofundezi şi să înţelegi move-semantics şi tehnica copy-on-write (CoW).
CoW este o tehnică folosită foarte frecvent în C/C++, unde nu “furi” pointerul ci iniţial îl partajezi între sursă şi destinaţie şi incrementezi o referinţă. Când unul dintre obiecte este distrus, nu şterge memoria alocată, ci decrementează referinţa. Când referinţa ajunge la zero (adică nu mai există niciun obiect care să aibă nevoie de memoria alocată), memoria este eliberată. Totuşi, ce se întamplă dacă ai nevoie să modifici content-ul unui obiect? Ei bine, de aici vine denumirea de “copy-on-write”, în momentul în care care scrii ceva în obiectul ăla, abia atunci îţi faci o copie a datelor iniţiale şi decrementezi referinţa.
Foarte tare această tehnică !chiar sunt foarte curios și o să ma documentez!mulțumesc din nou pentru ajutor și,pentru perspectiva noua oferita și diversele suporturi oferite!lucrurile sunt mai interesante decât la facultate!