c++ - C++中如何遍历栈?

标签 c++ stack traversal

是否可以在 C++ 中遍历 std::stack

使用以下方法遍历不适用。因为 std::stack 没有成员 end

std::stack<int> foo;

// ..

for (__typeof(foo.begin()) it = foo.begin(); it != foo.end();  it++)
{
    // ...
}

最佳答案

Is it possible to traverse std::stack in C++?

没有。当您有兴趣将元素放在顶部并从顶部获取元素时,堆栈是您应该使用的数据结构。如果您想要一个可迭代的堆栈,请为堆栈角色使用不同的数据结构(std::vector?)或自己编写一个。

关于c++ - C++中如何遍历栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23194548/

相关文章:

c - 有没有办法保存和恢复C中的调用堆栈

c - 只要它们包含 "next"字段,是否可以在 C 中为不同的列表结构编写通用遍历函数?

c++ - 代码 :Blocks Mingw Compiler Error: Variable-Sized Object May Not Be Initialized

c++ - 为什么 MinGW 将 Win API 函数定义为宏?

c++ - 使用 std::stack 和 std::map 内存使用率意外高

python - 遍历元组列表包含python中的字符串和列表

c++ - 二叉树C++的层序遍历

c++ - cout 输出乱码消息行而不是实际用户 cout 语句

c++ - QThread 总是留下一个线程

c - 对于缓冲区溢出,使用pthreads时栈地址是多少?