Rumah >pembangunan bahagian belakang >C++ >Bolehkah std::array menjadi Lalai-Dimulakan?

Bolehkah std::array menjadi Lalai-Dimulakan?

DDD
DDDasal
2024-10-31 03:29:02711semak imbas

Can std::array be Default-Initialized?

Bolehkah std::array dijadikan Default-Initialized?

Dengan mengisytiharkan pembolehubah sebagai std::array x;, anda boleh menjamin bahawa semua elemennya akan dimulakan secara lalai. Menurut standard bahasa C 11 (§8.5/11), mana-mana objek tanpa pemula eksplisit dimulakan secara lalai.

Walau bagaimanapun, anda harus sedar bahawa pemulaan lalai tidak mempunyai kesan pada bukan kelas, bukan- jenis tatasusunan (§8.5/6), menjadikan nilainya tidak dapat ditentukan. Contohnya, tatasusunan yang dimulakan lalai bagi jenis sedemikian akan mempunyai nilai yang tidak tentu.

Nilai-Inisialisasi Tatasusunan

Jika anda ingin memulakan semua elemen tatasusunan kepada yang khusus nilai T{}, ini bukan permulaan lalai tetapi permulaan nilai (8.5/7). Anda boleh nilai-memulakan tatasusunan dengan mudah dalam C 11 dengan menggunakan pemula kosong:

<code class="cpp">int plain_int{};
int c_style_array[13]{};
std::array<int, 13> cxx_style_array{};</code>

Ini akan nilai-memulakan semua elemen tatasusunan, menghasilkan nilai konsisten 0 untuk integer dan nilai lalai untuk data masing-masing jenis.

Atas ialah kandungan terperinci Bolehkah std::array menjadi Lalai-Dimulakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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