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

时间:2020-01-08 15:43:44

标签: c++

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

我知道只有两个添加示例的示例。

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 个答案:

答案 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:我知道这个答案很可能不是您想听到的,但是我希望这将向您展示如何使它变得比必要的更为复杂,也许您将能够解释您还有什么其他要求你还没有提到的。