2012-03-17 24 views
1

我實現一個Visual C++項目,它使用Windows窗體。我需要使用C++堆棧,並使用stack<>。但它給出了這個錯誤。我包括#include <stack>using namespace std;加入using namespace std;它說未聲明的標識符之前。但添加後,它會給出這個錯誤。我是C++新手。任何人都可以解釋爲什麼發生這種情況謝謝...!我的代碼的無法從「的std ::堆棧<_Ty>」轉換「這個」指針「的std ::堆棧<_Ty>&」

部分:

stack<int> TA; 
stack<int> TB; 
stack<int> TC; 

void move_a_to_b(){ 

    if(TB.top() < TA.top()){ 
    B[index_of_b + 1]->Image = A[index_of_a]->Image; 
    B[index_of_b + 1]->Visible = true; 
    A[index_of_a]->Visible = false; 
    index_of_a--; 
    index_of_b++; 
    TB.push(TA.top()); 
    TA.pop(); 
    } 
    else 
    MessageBox::Show("Invalid Move","Error",MessageBoxButtons::OK,MessageBoxIcon::Exclamation); 
} 
+1

顯示你的代碼。 – 2012-03-17 22:42:06

+0

給我們更多的工作。顯示有問題的行。 – selalerer 2012-03-17 22:44:22

+0

有什麼理由不能使用'System :: Collections :: Generic :: Stack <>'? – Marlon 2012-03-17 22:44:33

回答

1

我找到了解決辦法。發生這種情況是因爲我使用託管版本的非託管版本stack。該堆棧不得使用new關鍵字進行初始化。