2D std::array の初期化が制限される理由
std::array は非常に簡潔なコンテナですが、次のような点があります。 2D 配列を初期化するときの制限。次のような単純な初期化が機能しない理由を調べてみましょう:
std::array<std::array<int, 3>, 2> a { {1, 2, 3}, {4, 5, 6} };
エラー: 'std::array
std::array<std::array<int, 3>, 2> a { {{1, 2, 3}}, // 内层花括号用于初始化 C 数组 {{4, 5, 6}} };この追加の中括弧のネストにより、コンパイラーは初期化データを C 配列メンバーに正しく割り当てることができます。したがって、std::array は C クラスですが、その初期化構文は C 配列の構文と似ています。
以上が通常の 2D 配列のように 2D std::array を初期化できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。