2014-02-27 86 views
1

我试图让整数阵列堆叠,就像这样:制作INT阵列堆叠

stack<int[2]> stk; 

int arr[2] = {1,2}; 
stk.push(arr); 
然而

时,Visual C++给我的错误

error C2075: 'Target of operator new()' : array initialization needs curly braces 

和MinGW给我错误

error: parenthesized initializer in array new 

该错误似乎来自stk.push(arr)。错误的含义是什么,以及如何正确构建一堆整数数组?

+1

您不能在容器中使用原始数组。首先,它们不可复制/移动。 – chris

+0

堆栈> stk; –

+0

哦。很高兴知道。感谢人们! – woojoo666

回答

2

用C++ 11个数组,你可以这样做:

#include <stack> 
#include <array> 

stack<array<int, 2>> arrs; 
arrs.push({1, 2}); 

正如在这个问题的评论中提到,它也有可能与vector<int>更换array<int, 2>。但是,array<int, 2>可以实现您使用固定大小的容器(以及较低的内存使用情况)描述的内容。