0

我对称为 C++ 的“程序语言”有一个大问题。我想打印字符串堆栈。

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

2 回答 2

5

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

void show(stack<string> stos)
{
    while(!stos.empty()) {
        cout << stos.top() << endl;
        stos.pop();
    }
}
于 2012-08-19T18:10:35.120 回答
0

pop不返回删除的值。您必须首先访问top()以获取值,然后调用pop()以摆脱它。

于 2012-08-19T18:10:31.560 回答