无法从'std :: stack< _Ty>'转换'this'指针到'std :: stack< _Ty> &安培;”

时间:2012-03-17 22:40:41

标签: c++ c++-cli

我正在实现一个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);
}

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。发生这种情况是因为我使用托管版本的stack非托管版本。不得使用new关键字初始化堆栈。