将字符串放入堆栈C ++时出错

时间:2012-08-19 18:07:37

标签: c++ stack

我的“程序语言”(C ++)存在很大问题。 我想打印一堆字符串。

void show(stack<string> stos) {
  while (!stos.empty()) {
    cout << stos.pop() << endl;
  }
}

2 个答案:

答案 0 :(得分:5)

pop()仅从堆栈中删除顶部元素并将其抛弃。它返回void(没有),显然你不能用cout打印它。你需要:

void show(stack<string> stos)
{
    while(!stos.empty()) {
        cout << stos.top() << endl;
        stos.pop();
    }
}

答案 1 :(得分:0)

pop不会返回删除的值。您必须先访问top()才能获取值,然后调用pop()来删除它。