在C ++中声明后的2D数组值赋值

时间:2013-04-17 12:17:16

标签: c++ arrays 2d declaration

我知道当我们声明数组时我们想要为2D数组赋值,我们这样做:

int myArray[2][4] = {{1,2,3,4},{5,6,7,8}};

但是如何在“声明”之后分配值呢?我想做这样的事情:

int myArray[2][4];

myArray = {{1,2,3,4},{5,6,7,8}};

当我这样做时,编译器会给出错误。请帮助。

1 个答案:

答案 0 :(得分:2)

如果您想使用std::vector,那么您可以这样做:

#include <vector>

int main()
{
    std::vector< std::vector<int> > arrV ;

    arrV = { {1,2,3,4}, {5,6,7,8} };
}

或使用std::array

#include <array>

int main()
{
    std::array<std::array<int,4>,2> arr ;

    arr =  {{  {{1,2,3,4 }}, {{5,6,7,8}}  }} ;
}

注意,内部和外部集合中的双重括号。这个答案虽然只适用于C ++ 11。