c++ queue和stack
时间: 2024-10-24 18:00:32 浏览: 22
在C++中,`queue`和`stack`都是内置的数据结构容器,它们分别代表队列(Queue)和栈(Stack)。这两种数据结构都支持后进先出(LIFO, Last In First Out)的原则,但它们的操作略有区别:
**Stack(栈)**:
1. **特点**:类似于物理世界中的书堆,新元素通常添加在顶部(push),删除也从顶部开始(pop)。常用操作有`push`, `top`, 和 `pop`。
2. **典型应用**:表达式求值、递归调用的回溯、括号匹配等。
**Queue(队列)**:
1. **特点**:先进先出(FIFO, First In First Out),新的元素加在队尾(enqueue或push_back),删除则从队头开始(dequeue或pop_front)。队列适合处理一系列有序的任务。
2. **典型应用**:任务调度、消息传递、广度优先搜索(BFS)算法。
以下是创建和操作栈和队列的基本示例:
```cpp
#include <iostream>
#include <stack>
#include <queue>
int main() {
// 创建栈
std::stack<int> stack;
stack.push(1); // 入栈
stack.push(2);
int topElement = stack.top(); // 查看栈顶元素
stack.pop(); // 出栈
// 创建队列
std::queue<int> queue;
queue.push(1); // 入队
queue.push(3);
int frontElement = queue.front(); // 查看队首元素
queue.pop(); // 出队
return 0;
}
```
阅读全文