在現代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中文網其他相關文章!