使用大括号C ++填充动态数组

时间:2013-02-08 19:05:02

标签: c++ c arrays c++11 initialization

在c ++中是否有办法填充像这样分配的数组

int **a = new int[4][2];

这样就可以像这样填充一行中的值

int a [4][2] = {{2,3,4},{5,6,7}};

3 个答案:

答案 0 :(得分:6)

您可以使用universal initialization notation在C ++ 11中执行此操作:

int(*a)[2] = new int[2][2]{{1,2},{3,4}};

答案 1 :(得分:0)

矢量矢量可以工作,但仅限于C ++ 11。我想你必须放弃C兼容性

#include <vector>

int main()
{
   std::vector<std::vector<int>> v = {{2,3,4},{5,6,7}};   
}

答案 2 :(得分:0)

如果你的编译器有足够的C ++ 11支持,则首选std :: array为C风格的数组:

#include <array>

int main()
{
    std::array<std::array<int,3>,3> v = {1,2,3,4,5,6,7,8,9};
}