0

このように私の3次元ジャグ配列にアクセスする方法はありますか?

jaggedArray[1,2,3];

これまでに次のコードスニペットを取得しました。

        int[][] jaggedArray = new int[3][]
        {
            new int[] { 2, 3, 4, 5, 6, 7, 8 },
            new int[] { -4, -3, -2, -1, 0, 1},
            new int[] { 6, 7, 8, 9, 10 }
        };

        int[,,] dontWork = new int[,,] // expect 7 everywhere in the last dimension
        {
            { { 2, 3, 4, 5, 6, 7, 8 } },
            { { -4, -3, -2, -1, 0, 1} },
            { { 6, 7, 8, 9, 10 } }
        };
4

2 に答える 2

3

最初の質問に関しては、ジャグ配列の1番目の要素の2番目の要素の3番目の要素にアクセスしようとしています。

jaggedArray[1][2][3]

エラーに関しては、3D配列は、次元の各要素に同じ数の要素を想定しています。簡単にするために、2Dジャグ配列があるとしましょう。これは、メモリ内でどのように見えるかを大まかに表したものです。

First row  -> 2,   3,  4,  5, 6, 7, 8
Second row -> -4, -3, -2, -1, 0, 1
Third row  -> 6,   7,  8,  9, 10

各行は異なる配列として表示されるため、サイズが異なる可能性があることがわかります。ただし、多次元配列にはこのプロパティはありません。完全に入力する必要があります。

Column    :  0    1   2   3   4  5  6
------------------------------------
First row :  2,   3,  4,  5,  6, 7, 8
Second row: -4,  -3, -2, -1,  0, 1 
Third row :  6,   7,  8,  9, 10

テーブルにいくつかのセルがありません。これは意味がありません。ディメンションごとに同じ数の要素を使用する必要があります。

于 2013-02-02T21:09:15.227 に答える
2

2Dジャグ配列を正しく宣言するための構文を取得しました。3Dジャグ配列はその拡張です。例えば:

int[][][] jagged3d = new int[][][]
{
    new int[][] { new int[] { 111, 112 }, new int[] { 121, 122, 123 } },
    new int[][] { new int[] { 211 } }
}

ただし、それにアクセスするには、別の構文が必要です。

jagged3d[0][1][2]
于 2013-02-02T21:34:19.617 に答える