2

c++中有没有办法填充这样分配的数组

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

这样它就会像这样在一行中填充值

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

3 回答 3

6

您可以使用通用初始化符号在 C++11 中执行此操作:

int(*a)[2] = new int[2][2]{{1,2},{3,4}};
于 2013-02-08T19:17:20.543 回答
0

向量的向量可以工作,但仅在 C++11 中。我想你必须为此放弃 C 兼容性

#include <vector>

int main()
{
   std::vector<std::vector<int>> v = {{2,3,4},{5,6,7}};   
}
于 2013-02-08T19:07:41.003 回答
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};
}
于 2013-02-08T19:16:02.257 回答