一、queue是什么

queue官方文档

STL 中的queue(队列) 是一种先进先出(FIFO, First In First Out)的容器适配器,就像排队买票:先进入队列的元素,最先被取出。

二、queue的特点

1.先进先出(FIFO):

先入队的数据,最先出队。

2.受限访问:

只能访问队首和队尾元素,不能随机访问。

三、queue的使用

3.1 queue的初始化

名称

使用示例

功能说明

queue()queue<int> s;构造空的队列

3.2 queue类对象的容量操作

名称

使用示例

功能说明

empty()q1.empty()判断是否为空
size()q1.size()获取长度

3.3 queue类对象的访问及遍历操作

名称

使用示例

功能说明

front()q1.front();返回队头元素的引用
back()q1.back();返回队尾元素的引用

3.4 queue类对象的修改操作

名称

使用示例

功能说明

push(val);q1.push(val);

元素val入队

pop();q1.pop();队头出队

演示代码

#include <iostream>
#include <queue>
using namespace std;

int main() {
    queue<int> q;

    // 入队
    q.push(1);
    q.push(2);
    q.push(3);

    // 查看队头队尾
    cout << "队头: " << q.front() << endl;
    cout << "队尾: " << q.back() << endl;

    // 出队
    q.pop();
    cout << "出队后队头: " << q.front() << endl;

    // 遍历(边出边读)
    cout << "队列元素: ";
    while (!q.empty()) {
        cout << q.front() << " ";
        q.pop();
    }

    return 0;
}

四、使用场景

C++ STL 中的 queue 是遵循先进先出(FIFO)规则的容器适配器

它虽不支持迭代器遍历、不能访问中间元素,但胜在使用方便、接口简单且安全省心,能避免误操作破坏顺序

其核心使用场景集中在需“先来先服务”的场景中

最核心的是算法中的BFS广度优先搜索(如迷宫最短路径、二叉树层序遍历、无权重图遍历)

此外还广泛应用于任务排队(线程任务、订单处理)

数据流顺序处理(缓冲区读取、按键事件)

操作系统中的进程就绪队列、打印机队列等

只要需求是“不能插队、按序处理”,queue就是省心高效的选择,用queue存储待处理节点,循环取出队首处理并将相邻未处理节点入队,直至队空。

更多推荐