有什么更好的方法来显示使用 C++ STL 创建的堆栈而不弹出每个元素

cea*_*sif 2 c++ stl c++11

我正在尝试使用STL堆栈来解决我希望显示堆栈元素的问题。但我没有找到任何有效的方法来显示而不弹出每个元素。

Jer*_*fin 5

堆栈是一个容器适配器。它的唯一目的是采用某种其他类型的容器(std::deque默认情况下为 a)并将该容器的可见接口限制为堆栈允许的少数操作。除此之外,这意味着您可以观察到的堆栈中唯一的元素是顶部。

如果您需要观察存储的其他元素,那么您不想使用堆栈。最明显的选择是直接使用std::deque(或std::vector)。当您需要类似堆栈的访问时,可以使用push_back,backpop_back来获取它。当您需要访问内部元素时,可以使用begin()end()operator[]at()等来获取。