Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C 11 dan C 14 Boleh Digunakan untuk Mencipta Tatasusunan Malar Masa Kompilasi?
Membuat Tatasusunan Constexpr dalam C 11: A Walkthrough
Dalam bidang pengaturcaraan C, kadangkala kita menghadapi situasi di mana kita perlu mentakrifkan tatasusunan dengan nilai malar semasa masa penyusunan. Ini amat berguna apabila berurusan dengan tatasusunan saiz yang diketahui yang tidak akan berubah semasa masa jalan. C 11 menawarkan ciri berkuasa yang dikenali sebagai constexpr yang membolehkan kami mencipta tatasusunan sedemikian.
Pertimbangkan senario berikut: anda ingin menentukan tatasusunan integer daripada 0 hingga nilai yang ditentukan, 'n'. Dalam C , kita biasanya boleh menyatakan ini sebagai:
int n = 5; int array[] = {0 ... n};
Walau bagaimanapun, dalam C 11, kita boleh mencapai hasil yang sama menggunakan constexpr, memastikan bahawa nilai diketahui pada masa penyusunan.
Merangkul C 14 untuk Permulaan yang Cekap
C 14 memperkenalkan anjakan paradigma yang memperkemas proses mencipta tatasusunan constexpr. Menggunakan pembina constexpr dan gelung, kita boleh memulakan tatasusunan seperti ini dengan mudah:
#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, pembina constexpr memulakan tatasusunan arr dengan nilai antara 0 hingga N-1 semasa penyusunan- masa. Teknik ini memastikan penciptaan tatasusunan constexpr yang cekap, memaksimumkan prestasi dan mengurangkan overhed masa jalan.
Atas ialah kandungan terperinci Bagaimanakah C 11 dan C 14 Boleh Digunakan untuk Mencipta Tatasusunan Malar Masa Kompilasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!