我需要在数组中添加一个数组,我想找到最方便的方法。
我知道只有两个添加示例的示例。
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;
答案 0 :(得分:2)
让我们看看您的两个选择...
选项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:我知道这个答案很可能不是您想听到的,但是我希望这将向您展示如何使它变得比必要的更为复杂,也许您将能够解释您还有什么其他要求你还没有提到的。