Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencipta Array Constexpr dari 0 hingga N dalam C 11?

Bagaimana untuk Mencipta Array Constexpr dari 0 hingga N dalam C 11?

Patricia Arquette
Lepaskan: 2024-12-02 09:35:10
asal
155 orang telah melayarinya

How to Create a Constexpr Array from 0 to N in C  11?

Membuat Tatasusunan Constexpr Menjangkau dari 0 hingga N dalam C 11

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

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!

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