2014-02-27 144 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>可以實現您使用固定大小的容器(以及較低的內存使用情況)描述的內容。