ホームページ > バックエンド開発 > C++ > C で 2D `std::array` を初期化するにはどうすればよいですか?

C で 2D `std::array` を初期化するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-21 01:28:13
オリジナル
886 人が閲覧しました

How Do I Initialize a 2D `std::array` in C  ?

2D std::array の初期化

その見た目に反して、C の 2D std::array は同じ方法では初期化されません2D C 配列として。この根本的な理由は、std::array は配列ではなくクラスであるためです。

2D std::array を初期化するには、クラス中括弧とメンバー配列中括弧の両方を使用する必要があります:

std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };
ログイン後にコピー

外側の中括弧 {} はクラス自体を初期化し、内側の中括弧 {{}} はクラス内に含まれるメンバー C 配列を初期化します。 class.

C の配列初期化との比較

違いを明確にするために、以下に C の配列の初期化との比較を示します。

struct B {
  int array[3];
};
struct A {
  B array[2];
};

B b = {{1,2,3}};
A a = {{
     {{1,2,3}},
     {{4,5,6}}
}};
ログイン後にコピー

C では、外側の中かっこ {} は構造体自体を初期化し、内側の中かっこ {{}} は構造体内のメンバー配列を初期化します。この構文は、 C の 2D std::array の初期化に似ていますが、後者の場合、 std::array クラスはクラス自体を初期化するために追加の外側中括弧を必要とする点が異なります。

以上がC で 2D `std::array` を初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート