还有其他方法可以在数组中写入多维数组吗?

are there other ways to write a multidimensional array in an array?

本文关键字:数组 方法 其他      更新时间:2023-10-16

我需要向数组添加一个数组,我想找到最方便的方法。

我知道这里只有 2 个添加选项是示例。

int main() {
int arr[5][6][8]{0};
// option 1
int& F = arr[1][0][1];
F = 2;
int L = arr[2][0][F];
L = 5;
// option 2
arr[1][1][1] = 3;
int Z = arr[2][1][arr[1][1][1]];
Z = 7;
cout << " ARR L " << L << "n" << endl;
cout << " ARR Z " << Z << "n" << endl;

system("pause");
return 0;
}

我需要这样的模板来帮助我编写可读的代码。 这很难,我知道,但请试着理解。 我的模板应该将我从多维数组中拯救出来

想象一下,我会做一些像这样疯狂的事情。

arr[1][0][1] = 2; // in fact, the number is unknown, this is just an example. the program itself adds the numbers that are needed
int F& = arr[2][0][arr[1][0][1]] = 5;
arr[1][1][1] = 3;
int Z& = arr[arr[1][0][1]][arr[2][0][F]][arr[1][1][1]];
Z = 7;

让我们看看你的两个选项...

选项 1

// option 1
int& F = arr[1][0][1];
F = 2;
int& L = arr[2][0][F];   // added &
L = 5;

我把int L改成了int& L,否则就没有意义了。那么以上效果与

arr[1][0][1] = 2;
arr[2][0][2] = 5;

我认为这比您的选择更清楚1。没有不必要的变量和间接,只是简单的赋值。

选项 2(再次更改为使用引用(

// option 2
arr[1][1][1] = 3;
int& Z = arr[2][1][arr[1][1][1]];
Z = 7;

这与

arr[1][1][1] = 3;
arr[2][1][3] = 7;

同样,我认为没有理由让它比这更复杂。

PS:我知道这个答案很可能不是你想听到的,但我希望这将向您展示如何使其不会比必要的复杂,也许您将能够解释您还有哪些您尚未提到的其他要求。