Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah C 11 dan C 14 Boleh Digunakan untuk Mencipta Tatasusunan Malar Masa Kompilasi?

Bagaimanakah C 11 dan C 14 Boleh Digunakan untuk Mencipta Tatasusunan Malar Masa Kompilasi?

Patricia Arquette
Lepaskan: 2024-12-04 03:50:13
asal
1069 orang telah melayarinya

How Can C  11 and C  14 Be Used to Create Compile-Time Constant Arrays?

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};
Salin selepas log masuk

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';
}
Salin selepas log masuk

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!

sumber:php.cn
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