2

私は 4D 配列を持っており、4D 配列内の 2D 配列を参照するために使用できる関数を作成し、関数呼び出しにインデックス付きの角括弧を追加してそのデータを読み取りたいと考えています。

int numbers[2][3][4][4] = {
    {
        {{1,2,3,4}, {4,3,2,1}, {6,7,8,9}, {9,8,7,6}},
        {{0,1,0,1}, {1,0,1,0}, {1,1,0,0}, {0,0,1,1}},
        {{5,4,1,8}, {4,2,5,1}, {7,2,5,8}, {4,2,5,1}}
    },
    { /* same stuff */ }
};

たとえば、{4,2,5,1} だけにアクセスしたい場合、その配列の最初の int (&number[0][2][1][0]) へのポインターを返す関数を作成できます。 func()[1]、func()[2]、func()[3] で要素にアクセスします。

int* func() {
    return &numbers[0][2][1][0];
}

// func()[2] => 5

しかし、numbers[0][2] への参照を返す関数を作成するにはどうすればよいfunc()[1][0]でしょうか。たとえば、5 を返すことはできますか?

C/C++ ポインター、参照、および配列の理解を深める必要があるようですが、「std」および C++11 固有のソリューション (標準配列に対していくつかのクールな std::class を使用) も高く評価します。ありがとう :)

4

1 に答える 1