我正在尝试在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);
提前致谢
答案 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中,>
和>
之间必须有空格。