Rumah > pembangunan bahagian belakang > C++ > Adakah `std::vector::resize()` dan `boost::container::vector::resize()` Mempamerkan Gelagat Pemulaan Sifar yang Konsisten Merentas Piawaian C?

Adakah `std::vector::resize()` dan `boost::container::vector::resize()` Mempamerkan Gelagat Pemulaan Sifar yang Konsisten Merentas Piawaian C?

Patricia Arquette
Lepaskan: 2024-12-04 08:45:12
asal
765 orang telah melayarinya

Does `std::vector::resize()` and `boost::container::vector::resize()` Exhibit Consistent Zero-Initialization Behavior Across C   Standards?

Adakah Vektor::resize() Kelakuan Konsisten Di Bawah C 11 dan Boost.Container?

Tingkah laku std::vector:: resize() biasanya digunakan untuk menimbal data sementara, mengubah saiznya kepada saiz yang sesuai sebelum digunakan. Dalam C 03, std::vector::resize() mencipta elemen baharu dengan menyalin, tetapi C 11 memperkenalkan lebihan yang memulakan elemen baharu tanpa menyalin.

Boost.Container menyediakan lebihan default_init tambahan untuk rangsangan:: container::vector::resize(), yang memulakan elemen baharu dengan nilai lalai. Ciri ini sejajar dengan falsafah reka bentuk C 11 iaitu hanya membayar untuk apa yang anda perlukan.

Setelah menguji kelakuan std::vector dan boost::container::vector di bawah kedua-dua mod C 03 dan C 11, hasil yang tidak dijangka telah diperhatikan. Dalam kedua-dua C 03 dan C 11, mengubah saiz vektor tanpa menyatakan pemulaan masih menghasilkan sifar permulaan elemen baharu untuk kedua-dua std::vector dan boost::container::vector.

Tingkah laku ini menunjukkan bahawa antara muka berubah dalam std::vector tidak mempunyai kesan ke atas pelaksanaan, dan elemen akhir yang ditambahkan dalam resize() masih dimulakan dengan sifar. Isu yang dibangkitkan ialah sama ada tingkah laku ini betul.

Atas ialah kandungan terperinci Adakah `std::vector::resize()` dan `boost::container::vector::resize()` Mempamerkan Gelagat Pemulaan Sifar yang Konsisten Merentas Piawaian C?. 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