初始化后是否有一种简单的方法来填充二维数组?

时间:2014-11-17 11:13:21

标签: c++ arrays

我目前在程序中有一个二维数组,用于存储多维数据集的坐标。它在顶部初始化,很容易填充我想要的值。

float cubeRef[3][8] = { { -1, 1, 1, -1, -1, 1, 1, -1 },
                        { 1, 1, -1, -1, 1, 1, -1, -1 },
                        { 1, 1, 1, 1, -1, -1, -1, -1, }     };

然而,在我的节目中,协调会发生变化,我有一个重置'它们回到上面看到的默认值。但是,如果我尝试使用与以前相同的方法重置它们。

cubeRef = { { -1, 1, 1, -1, -1, 1, 1, -1 },
            { 1, 1, -1, -1, 1, 1, -1, -1 },
            { 1, 1, 1, 1, -1, -1, -1, -1, }     };

此处不起作用,错误消息"表达式必须是可修改的值"。

为什么我在创建它之后能够以相同的方式填充二维数组?如何在不必单独填充每个空格的情况下将二维数组返回到其默认值?

1 个答案:

答案 0 :(得分:3)

你不能分配给一个数组,这根本不可能。

可以有两个数组,你修改的数组和一个包含默认值的数组。然后,当您想要重置可修改的数组时,只需使用std::copymemcpy或循环从默认数组中复制。

否则,您必须逐个手动设置每个条目。