Rumah > pembangunan bahagian belakang > C++ > Adakah `std::vector::push_back()` Mencipta Salinan Objek?

Adakah `std::vector::push_back()` Mencipta Salinan Objek?

Mary-Kate Olsen
Lepaskan: 2024-10-30 22:24:02
asal
454 orang telah melayarinya

Does `std::vector::push_back()` Create Copies of Objects?

Adakah std::vector Menyalin Objek dengan push_back()?

Selepas analisis meluas menggunakan Valgrind, disimpulkan bahawa std::vector melakukan salinan objek yang dimasukkan menggunakan push_back().

Mekanisme Dalaman

Tidak seperti vektor dalam C , yang hanya beroperasi pada rujukan, std::vector dalam stor C objek sebenar. Ini membayangkan bahawa setiap kali push_back() dipanggil, salinan objek yang disisipkan dibuat dan ditambah pada tatasusunan dalaman vektor.

Penyimpanan Penunjuk

Jika anda berhasrat untuk menyimpan penunjuk dalam vektor, anda harus mempertimbangkan untuk menggunakan std::vector bukannya std::vector. Ini membolehkan anda mengelak daripada menyalin objek itu sendiri, tetapi ia memerlukan memastikan objek yang ditunjuk kekal sah sepanjang hayat vektor.

Penunjuk Pintar

Penunjuk Pintar memudahkan pengurusan seumur hidup objek, dengan itu memastikan objek yang terkandung kekal sah semasa dirujuk oleh vektor. Mereka menggunakan simpulan bahasa Pemerolehan Sumber Adalah Permulaan (RAII) untuk memperoleh dan melepaskan sumber secara automatik.

Ringkasnya, std::vector::push_back() mencipta salinan objek yang dimasukkan, tetapi menggunakan penunjuk pintar dengan std ::vektor membolehkan anda menyimpan penunjuk tanpa menyalin objek asas, memastikan kesahihannya dalam hayat vektor.

Atas ialah kandungan terperinci Adakah `std::vector::push_back()` Mencipta Salinan Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan