我如何通过引用弹出一些东西? c ++堆栈

时间:2012-12-04 23:55:16

标签: c++ stack push pop

我正在做一个检查平衡括号和括号等的程序。我创建了一个char来存储信息,当我按下char时它可以工作,但它不允许我弹出。有谁知道我能做什么?我们的教授给了我们头文件所以我不能在pop / push函数中将它从int更改为char ..但我很好奇我能做些什么来使这个工作?感谢。

void push(int);
void pop(int &);

char ch,i;
IntStack x(50);
int count = 0;


while (fin>>ch)
{
if (ch == '[' || ch=='{' || ch=='(')
{
      x.push(ch);    //this works
  count++;
}

if (ch==']' || ch=='}' || ch==')')
{
  x.pop(ch);    //this brings an error, i also tried x.pop(ch&) and didnt work too
  count--;
}

}

2 个答案:

答案 0 :(得分:4)

您不能将char绑定到int的非const引用。将ch的类型更改为int,你应该没问题。

答案 1 :(得分:1)

将一个整数传递给表示ch的pop,然后根据从整数传回的结果设置ch。

int PopVar;
Pop(PopVar);
ch = PopVar;