Pemulaan 2D std::array
Walaupun penampilannya, 2D std::array dalam C tidak dimulakan dengan cara yang sama sebagai tatasusunan 2D C. Sebab asas untuk ini ialah std::array ialah kelas, bukan array.
Untuk memulakan 2D std::array, anda mesti menggunakan kedua-dua pendakap kelas dan pendakap tatasusunan ahli:
std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
Dakap luar {} memulakan kelas itu sendiri, manakala pendakap dalam {{}} memulakan tatasusunan ahli C yang terkandung dalam kelas.
Perbandingan dengan pemula tatasusunan C
Untuk menjelaskan perbezaannya, berikut ialah perbandingan dengan pemula tatasusunan C:
struct B { int array[3]; }; struct A { B array[2]; }; B b = {{1,2,3}}; A a = {{ {{1,2,3}}, {{4,5,6}} }};
Dalam C, pendakap luar {} memulakan struct itu sendiri, manakala pendakap dalam {{}} memulakan tatasusunan ahli dalam struct. Sintaks ini adalah serupa dengan pemulaan 2D std::array dalam C , kecuali dalam kes kedua, kelas std::array memerlukan pendakap luar tambahan untuk memulakan kelas itu sendiri.
Atas ialah kandungan terperinci Bagaimanakah Saya Memulakan `std::array` 2D dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!