Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 初始化双维度数组并稍后更改其值_C++_Arrays_Multidimensional Array - Fatal编程技术网

C++ 初始化双维度数组并稍后更改其值

C++ 初始化双维度数组并稍后更改其值,c++,arrays,multidimensional-array,C++,Arrays,Multidimensional Array,如何先初始化二维数组,然后再更改其值 我已尝试使用以下代码: class foo { public: foo() { bar = { {2, 2}, {2, 2} }; } private: int bar[2]

如何先初始化二维数组,然后再更改其值

我已尝试使用以下代码:

class foo
{
      public:
             foo()
             {
                  bar = {
                     {2, 2}, 
                     {2, 2}
                  };
             }

      private:
             int bar[2][2];
};

foo Foo;

此语法仅在初始化数组时有效。在构造函数体中,数组已经初始化。现在唯一的方法是使用循环:

for(int i = 0; i < 2; i++)
    for(int j = 0; j < 2; i++)
        bar[i][j] = 2;

@SpaceC0wb0y:谢谢你的回答!我还可以将构造函数体中的数组初始化为foo类的属性吗?所以它可以在整个类中使用?@Datoxalas:正如我所说的,你可以使用一个循环来实现这一点(我删除了memset的东西,这是错误的)。@Space_C0wb0y:我明白了,但我想以这种方式保留值
bar={{2,2},{2,2}而不是
条[i][j]=2用于每个值。这有可能吗?@Space\u c0w0y:我找到了一个解决办法。首先初始化数组,然后在构造函数中创建一个数组,并使用for循环将其每个值复制到另一个数组。谢谢你的帮助@Datoxalas:您可以使用
std::copy
来实现这一点:
std::copy(值,值+4,foo)。但是您必须确保
的大小与
foo
的大小相同。
std::copy(values, values+sizeof(foo)/sizeof(int), foo);