如何打印 std::stack 的内容并返回其大小?

新手上路,请多包涵

在 c++ 中,如何打印出堆栈的内容并返回其大小?

 std::stack<int>  values;
values.push(1);
values.push(2);
values.push(3);

// How do I print the stack?

原文由 John 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 612
1 个回答

您可以制作堆栈的副本并一个接一个地弹出项目以转储它们:

 #include <iostream>
#include <stack>
#include <string>

int main(int argc, const char *argv[])
{
    std::stack<int> stack;
    stack.push(1);
    stack.push(3);
    stack.push(7);
    stack.push(19);

    for (std::stack<int> dump = stack; !dump.empty(); dump.pop())
        std::cout << dump.top() << '\n';

    std::cout << "(" << stack.size() << " elements)\n";

    return 0;
}

输出

19
7
3
1
(4 elements)

在这里看到它:http: //liveworkspace.org/code/9489ee305e1f55ca18c0e5b6fa9b546f

原文由 sehe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题