C では、次のように std::array を使用して単純な 2D 配列を定義できます。例:
std::array<std::array<int, 3>, 2> a = { {1, 2, 3}, {4, 5, 6} };
ただし、この初期化は次のエラーで失敗します。初期化子が多すぎることを示すコンパイラ エラー。この不一致の理由は、std::array
適切に初期化するには、C クラスとそれに含まれる C 配列に個別の中かっこが必要です。
std::array<std::array<int, 3>, 2> a = { {{{1, 2, 3}}, {{4, 5, 6}}} };
この修正されたコードでは、次のようになります。
C と C 構文の間で中括弧の構造を一致させることにより、中括弧の初期化を使用して多次元配列を正常に初期化できます。 C で。
以上がC の 2D `std::array` に単純な中括弧の初期化を使用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。