2017-11-08 1 views
-2

std::arrayで配列の配列を初期化するにはどうしたらいいですか? は私のソリューションは、C++の2次元std :: arrayの初期化されたリストのリスト

array<array<int, sze>, sze> arcpp { 0, 1, 2, 3 , 4, 5, 6, 7, 8, 9, 10, 11 ,12, 13, 14, 15 }; 
for (auto i = 0; i < sze; i++) { 
    cout << "\n"; 
    for (auto j = 0; j < sze; j++) { 
     cout << "\t" << arcpp[i][j]; 
    } 
} 

あるしかし、私はそのような何か希望:

int matrix[][sze] = { 
    {0, 1, 2, 3}, 
    {4, 5, 6, 7}, 
    {8, 9, 10, 11}, 
    {12, 13, 14, 15} 
}; 
+0

興味のある、なぜあなたはしたいですか? 1D配列を使用できず、 'i * rows + j'のようなインデックスを使用できませんか? – Bathsheba

答えて

5

std::arrayをこのコンテナは、同じ意味を持つ集合型である

、内側の生の配列が含まれています唯一の非静的データメンバーとしてCスタイルの配列T[N]を保持する構造体。 ......集約型として、Tに変換可能なN個の初期化子で与えられた集約初期化で初期化することができます:std::array<int, 3> a = {1,2,3};

内側の配列を集約するために、中かっこを追加する必要があります。内側にはstd::arrayの内部があります。ところで

array<array<int, sze>, sze> arcpp = {{ 
    {0, 1, 2, 3}, 
    {4, 5, 6, 7}, 
    {8, 9, 10, 11}, 
    {12, 13, 14, 15} 
}}; 

LIVE

:あなたのソリューションが原因brace elisionの作品。

+0

それだけです!ありがとうございました –

関連する問題