Dalam bidang pengaturcaraan C moden, konsep tatasusunan constexpr telah mendapat perhatian yang ketara kerana tiada tandingannya kecekapan dan keupayaan penilaian masa penyusunan. Di tengah-tengah inovasi ini, persoalan timbul: bagaimanakah seseorang boleh membina tatasusunan constexpr antara 0 hingga n dalam C 11?
Kunci kepada cabaran ini terletak pada gabungan kuat pembina constexpr dan pemulaan berulang. Mari kita pecahkan intipati pendekatan ini:
#include <iostream> template<int N> struct A { constexpr A() : arr() { for (auto i = 0; i != N; ++i) arr[i] = i; } int arr[N]; }; int main() { constexpr auto a = A<4>(); for (auto x : a.arr) std::cout << x << '\n'; }
Dalam coretan kod ini, kami mentakrifkan pembina constexpr dalam struktur templat 'A'. Pembina ini memulakan tatasusunan integer 'arr' bersaiz N dengan elemen antara 0 hingga N-1 menggunakan gelung for.
Dengan menginstant 'A' sebagai objek constexpr bernama 'a', kami mencipta dengan berkesan tatasusunan constexpr yang nilainya dikira pada masa penyusunan. Gelung seterusnya berulang pada tatasusunan ini, mencetak elemennya ke aliran keluaran standard.
Ringkasnya, dengan memanfaatkan kepelbagaian pembina constexpr dan pemulaan berulang, kami telah mencipta cara untuk membina tatasusunan constexpr antara 0 hingga n dalam C 11, mempamerkan kecekapan dan kehebatan penilaian masa penyusunan yang ditawarkan oleh bahasa ini.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Array Constexpr dari 0 hingga N dalam C 11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!