如何打印 std::stack 的内容并返回其大小?
在 c++ 中如何打印堆栈的内容并返回其大小?
In c++ how can I print out the contents of my stack and return its size?
std::stack<int> values;
values.push(1);
values.push(2);
values.push(3);
// How do I print the stack?
推荐答案
您可以复制堆栈并一个接一个地弹出项目以转储它们:
You could make a copy of the stack and pop items one-by-one to dump them:
#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() << '
';
std::cout << "(" << stack.size() << " elements)
";
return 0;
}
输出
19
7
3
1
(4 elements)
相关文章