首頁 > 後端開發 > C++ > 如何在 C 11 中建立從 0 到 N 的 Constexpr 陣列?

如何在 C 11 中建立從 0 到 N 的 Constexpr 陣列?

Patricia Arquette
發布: 2024-12-02 09:35:10
原創
235 人瀏覽過

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

在C 11 中製作從0 到N 的Constexpr 數組

在現代C 編程領域,constexpr 數組的概念因其無與倫比的特性而受到極大關注效率和編譯時評估能力。在這項創新中,出現了一個問題:如何在 C 11 中建構一個從 0 到 n 的 constexpr 陣列?

這項挑戰的關鍵在於 constexpr 構造函數和迭代初始化的強大組合。讓我們分解一下這種方法的本質:

#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';
}
登入後複製

在此程式碼片段中,我們在模板結構「A」中定義了一個 constexpr 建構子。此建構函式使用 for 迴圈初始化大小為 N 的整數陣列 'arr',其元素範圍為 0 到 N-1。

透過將 'A' 實例化為名為 'a' 的 constexpr 對象,我們有效地創建了一個constexpr 數組,其值在編譯時計算。隨後的循環迭代該數組,將其元素列印到標準輸出流。

總之,透過利用constexpr 構造函數和迭代初始化的多功能性,我們設計了一種構造從0 到範圍的constexpr 數組的方法n 在C 11 中,展示了該語言提供的效率和編譯時評估能力。

以上是如何在 C 11 中建立從 0 到 N 的 Constexpr 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板