Rumah > pembangunan bahagian belakang > C++ > Mengapakah Saya Tidak Boleh Menggunakan Permulaan Pendakap Mudah untuk `std::array` 2D dalam C ?

Mengapakah Saya Tidak Boleh Menggunakan Permulaan Pendakap Mudah untuk `std::array` 2D dalam C ?

Linda Hamilton
Lepaskan: 2024-11-21 11:51:11
asal
552 orang telah melayarinya

Why Can't I Use Simple Brace Initialization for 2D `std::array`s in C  ?

Mengapakah Permulaan Pendakap Tidak Mungkin untuk 2D std::arrays?

Dalam C , anda boleh mentakrifkan tatasusunan 2D mudah menggunakan std::array, seperti yang dilihat dalam contoh:

std::array<std::array<int, 3>, 2> a = {
    {1, 2, 3},
    {4, 5, 6}
};
Salin selepas log masuk

Walau bagaimanapun, permulaan ini gagal dengan ralat pengkompil, menyatakan bahawa terdapat terlalu banyak pemula. Sebab percanggahan ini terletak pada fakta bahawa std::array ialah kelas agregat yang merangkum tatasusunan gaya C.

Untuk pemulaan yang betul, pendakap berasingan diperlukan untuk kelas C dan tatasusunan C yang terkandung:

std::array<std::array<int, 3>, 2> a = { {{{1, 2, 3}}, {{4, 5, 6}}} };
Salin selepas log masuk

Dalam kod yang diperbetulkan ini:

  • Pendakap paling luar memulakan std::array kelas.
  • Pendakap bersarang memulakan tatasusunan gaya C dalam kelas.

Dengan memadankan struktur pendakap antara sintaks C dan C, anda boleh berjaya memulakan tatasusunan berbilang dimensi menggunakan pemula pendakap dalam C .

Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Menggunakan Permulaan Pendakap Mudah untuk `std::array` 2D dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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