C++ 栈容器 (std::stack) 使用详解
在 C++ 中,std::stack 是 STL 库中的一个容器适配器,它允许在栈的操作上进行封装,提供了一种以堆栈方式访问元素的接口。
std::stack 基于其他底层容器实现,例如 std::deque, std::list, std::vector 等。默认情况下,std::stack 使用 std::deque 作为底层容器。
以下是 std::stack 的一些常用操作:
-
入栈:将元素压入栈顶
push():将元素压入栈顶。
-
出栈:从栈顶移除元素
pop():从栈顶移除元素。
-
访问栈顶元素
top():返回栈顶的元素。
-
检查栈是否为空
empty():检查栈是否为空。
-
获取栈中元素的数量
size():返回栈中元素的数量。
以下是一个使用 std::stack 的示例:
#include <iostream>
#include <stack>
int main() {
std::stack<int> myStack;
myStack.push(10);
myStack.push(20);
myStack.push(30);
while (!myStack.empty()) {
std::cout << myStack.top() << " ";
myStack.pop();
}
return 0;
}
在上述示例中,我们展示了如何使用 std::stack 创建一个栈,并将一些元素压入栈中。然后,我们使用 top() 函数获取栈顶元素,并使用 pop() 函数将元素从栈中移除。最后,我们使用 empty() 函数检查栈是否为空。
需要注意的是,std::stack 并没有提供迭代器,因此无法直接遍历栈中的元素。如果需要遍历元素,可以先将栈中的元素依次弹出并处理,或者将栈中的元素复制到其他容器中再进行操作。
希望以上解答能够帮助你!如果你还有其他关于容器或 C++ 的问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/bNRZ 著作权归作者所有。请勿转载和采集!