C++ stack用法
时间: 2024-09-23 08:15:20 浏览: 52
在C++中,标准库提供了一个名为`std::stack`的数据结构,它是STL(Standard Template Library)的一部分,用于处理栈的行为。`std::stack`模板支持动态大小调整,可以存储不同类型的数据,通常基于`std::deque`(双端队列)底层实现。
以下是`std::stack`的一些基本用法:
1. 创建栈:
```cpp
#include <stack>
std::stack<int> myStack;
```
这里创建了一个只包含整数的空栈。
2. 压栈(push):
```cpp
myStack.push(5);
```
向栈顶添加元素5。
3. 弹栈(pop):
```cpp
int topValue = myStack.top(); // 获取栈顶元素
myStack.pop(); // 删除并返回栈顶元素
```
`top()`方法获取栈顶元素,`pop()`方法则移除并丢弃栈顶元素。
4. 检查栈是否为空:
```cpp
bool isEmpty = myStack.empty(); // 返回true如果栈为空
```
5. 查看栈顶元素但不删除:
```cpp
int peekValue = myStack.top(); // 只查看栈顶元素,不会改变栈的状态
```
6. 遍历栈:
```cpp
while (!myStack.empty()) {
std::cout << myStack.top() << " ";
myStack.pop();
}
```
这将打印出栈中的所有元素,直到栈变为空。
阅读全文