我有一个 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
但是我如何创建一个返回对数字 [0] [2] 的引用的函数,例如我可以这样做func()[1][0]
并且它会返回 5?
看来我应该加深对 C/C++ 指针、引用和数组的理解,但我也会欣赏“std”和 C++11 特定的解决方案(在标准数组上使用一些很酷的 std::class)。谢谢 :)