ホームページ >バックエンド開発 >C++ >C 11 `constexpr` 配列を 0 から N に初期化するには?

C 11 `constexpr` 配列を 0 から N に初期化するには?

DDD
DDDオリジナル
2024-12-11 05:19:10259ブラウズ

How to Initialize a C  11 `constexpr` Array from 0 to N?

C 11 で 0 から N まで Constexpr 配列を初期化する

C 11 で、0 から指定された整数 n までにわたる constexpr 配列を作成するには、もう少し時間がかかります。後の C バージョンよりも手間がかかります。その方法は次のとおりです:

Constexpr コンストラクターとループの使用:

#include <iostream>

template<int N>
struct Array {
    constexpr Array() : arr() {
        for (auto i = 0; i != N; ++i)
            arr[i] = i;
    }
    int arr[N];
};

int main() {
    constexpr auto a = Array<5>();
    for (auto x : a.arr)
        std::cout << x << '\n';
}

このコードでは:

  • 配列構造体テンプレートは constexpr 配列を表します。
  • constexpr コンストラクターは、ループを使用して配列要素を 0 から N-1 まで初期化します。
  • main() では、Array のインスタンスが作成されます。が作成され、その要素がコンソールに出力されます。これにより、0、1、2、3、4 が出力されるはずです。

以上がC 11 `constexpr` 配列を 0 から N に初期化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。