我正在实现一个Visual C ++项目,它使用Windows窗体。我需要使用C ++堆栈,我使用stack<>
。但它给出了这个错误。我添加#include <stack>
和using namespace std;
在添加using namespace std;
之前,它会显示未声明的标识符。但在添加之后它会出现此错误。我是C ++的新手。谁能解释我为什么会这样。谢谢...!
我的代码的一部分:
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);
}
答案 0 :(得分:1)
我找到了解决方案。发生这种情况是因为我使用托管版本的stack
非托管版本。不得使用new
关键字初始化堆栈。