- queue队列是一种先进先出(FIFO)容器
- queue支持任意基本数据类型和STL容器
- queue定义于
queue.h
,命名空间std
一、构造函数
作用 | 代码 | 说明 |
定义一个queue | queue<typename> q; | typename可以是任意基础数据类型或STL容器 |
二、访问queue内元素
- 由于队列本身是一个先进先出的限制性结构,因此STL中只能访问队首和队尾元素
- 访问队首:
queue.front()
- 访问队尾:
queue.back()
三、常用操作
- 设有queue容器q
操作 | 代码 | 时间复杂度 | 说明 |
元素x入队 | q.push(x) | O(1) | - |
队首出队 | q.pop() | O(1) | - |
队列判空 | q.empty() | O(1) | 返回一个bool类型 |
访问队首元素(不影响队列) | q.front() | O(1) | 如果队列为空,front()方法会报错 |
访问队尾元素(不影响队列) | q.back() | O(1) | 如果队列为空,back()方法会报错 |
获得queue内元素个数 | q.size() | O(1) | - |
四、常见用途
- 实现广度优先搜索时,可以用queue代替手动实现队列
- 延申:
- STL中还有两种队列,双端队列
deque
和优先队列priority_queue