在C 11 製作Constexpr 陣列:演練
在C 程式設計領域,偶爾我們會遇到需要定義一個編譯時具有常數值的數組。當處理已知大小且在運行時不會改變的數組時,這特別有用。 C 11 提供了一個名為 constexpr 的強大功能,使我們能夠建立此類陣列。
考慮以下場景:您想要定義一個從 0 到指定值「n」的整數陣列。在 C 中,我們通常可以將其表示為:
int n = 5; int array[] = {0 ... n};
但是,在 C 11 中,我們可以使用 constexpr 實現相同的結果,確保這些值在編譯時已知。
採用 C 14 進行高效初始化
C 14 引入了一個範例簡化了創建 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'; }
在此程式碼片段中,constexpr 構造函數在編譯期間使用0 到N-1 範圍內的值初始化arr 數組-時間。該技術確保了 constexpr 數組的高效創建,最大限度地提高效能並減少運行時開銷。
以上是如何使用 C 11 和 C 14 建立編譯時常數數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!