Rumah >pembangunan bahagian belakang >C++ >Bilakah Pendakap Luar Diperlukan dalam Senarai Pemula C untuk `std::array` dan Agregat Serupa?
Apabila Pendakap Luar Tidak Boleh Ditinggalkan dalam Senarai Pemula
Dalam C , pendakap luar diperlukan untuk senarai pemula apabila berurusan dengan jenis tertentu struktur agregat, khususnya yang merupakan Jenis Data Lama Biasa (POD) atau kekurangan pembina yang ditentukan pengguna. Tidak seperti kebanyakan bekas dalam pustaka standard, std::array termasuk dalam kategori ini.
std::array Initialization dengan Braces
Pertimbangkan contoh berikut:
std::array<A, 2> a1 = { {0, 0.1}, {2, 3.4} };
di mana A ialah struct dengan dua ahli data. Set tambahan pendakap yang melampirkan {0, 0.1}, {2, 3.4} adalah penting kerana ia memulakan tatasusunan dalaman std::array. Tanpanya, pengkompil akan melaporkan ralat "terlalu banyak pemula".
Permulaan Tatasusunan Terus
Tingkah laku ini serupa dengan pengamulaan tatasusunan langsung:
Aarray a1 = { {0, 0.1}, {2, 3.4} };
Di sini, data tatasusunan dalaman bagi struct Aarray sedang dimulakan secara langsung. Tanpa pendakap luar, pengkompil akan menghadapi ralat yang sama seperti std::array.
Perbandingan dengan Jenis Skalar
Apabila memulakan tatasusunan jenis skalar seperti double, pendakap luar adalah pilihan kerana jenis skalar bukan agregat. Contohnya:
std::array<double, 2> a2 = {0.1, 2.3};
Dalam kes ini, pendakap tambahan tidak diperlukan kerana ahli data tatasusunan sudah dimulakan terus oleh senarai pemula {0.1, 2.3}.
Atas ialah kandungan terperinci Bilakah Pendakap Luar Diperlukan dalam Senarai Pemula C untuk `std::array` dan Agregat Serupa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!