私は 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 を使用) も高く評価します。ありがとう :)