如何在c ++中创建int 2D数组的向量

时间:2014-02-17 16:34:15

标签: c++ arrays vector multidimensional-array

我正在尝试在c ++中创建int 2D数组的向量 但我的下面的代码有一些错误,我无法理解为什么?!

vector< int[2][2] > vec;
int a[2][2];
vec.push_back(a);

我不想在我的vetor中使用int **(并使用new创建一个2D数组)

我知道每个2D数组只有2个col和row(大小是静态的)

那么有没有办法实现那个载体?

并且我也尝试将一个数组推送回vecotr并且它也没有成功!为什么呢?

vector< int[2] > vec;
int a[2];
vec.push_back(a);

提前致谢

2 个答案:

答案 0 :(得分:8)

原生数组不可复制,可移动或可分配,因此不能存储在标准容器中。

但是,包装器std::array<T,N>是,所以std::vector<std::array<std::array<int, 2>, 2> >是实现您想要的一种方式。

答案 1 :(得分:0)

您可以通过以下方式创建2D矢量:std::vector <std::vector <data_type> > vector_name

注意:在C ++ 03中,>>之间必须有空格。