Rumah >pembangunan bahagian belakang >C++ >Adakah std::vector Menyalin Objek pada Push_back()?
Adakah std::vector Menyalin Objek pada push_back()?
Susulan penyiasatan menggunakan Valgrind, pengguna membuat kesimpulan bahawa std::vector mencipta salinan objek apabila melakukan push_back(). Ini menimbulkan persoalan:
Tidak boleh std::vector Store Rujukan atau Penunjuk Tanpa Menyalin?
Malangnya, jawapannya adalah afirmatif. std::vector::push_back(), seperti yang direka, mencipta salinan objek yang diluluskan sebagai hujah dan menyimpannya dalam vektor.
Alternatif untuk Elakkan Menyalin:
Jika tingkah laku yang diingini adalah untuk menyimpan penunjuk atau rujukan dan bukannya salinan, pertimbangkan untuk menggunakan std::vector
Awas:
Apabila menggunakan penunjuk atau rujukan, pastikan objek yang dirujuk kekal sah sepanjang hayat vektor. Menggunakan petunjuk pintar yang menggunakan Pemerolehan Sumber Adalah Permulaan (RAII) boleh menangani isu ini dengan berkesan.
Atas ialah kandungan terperinci Adakah std::vector Menyalin Objek pada Push_back()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!