std::queue是STL容器适配器,默认基于deque实现,支持FIFO操作;仅允许队尾入队、队首出队,不支持随机访问,使用前需#include ,常用函数包括push、pop、front、back、empty和size。

在C++中,std::queue 是 STL 提供的一个容器适配器,底层默认基于 deque 实现,支持先进先出(FIFO)操作。它不提供随机访问,只允许在队尾入队、队首出队。
基本用法与头文件
使用前需包含头文件:
#include
定义方式为:std::queue,其中 T 是元素类型,例如 int、string 或自定义类(需满足可拷贝/可移动)。
立即学习“C++免费学习笔记(深入)”;
常用操作与成员函数
std::queue 接口简洁,核心操作只有几个:
-
push(x):将元素
x插入队尾 - pop():移除队首元素(不返回值)
-
front():访问队首元素(返回引用,不可修改时用
const版本) - back():访问队尾元素(同样返回引用)
-
empty():判断队列是否为空,返回
bool - size():返回当前元素个数
注意:front() 和 back() 在空队列上调用是未定义行为,务必先用 empty() 检查。
底层容器可替换(进阶)
std::queue 是适配器,允许指定底层容器,例如改用 vector 或 list:
std::queue
std::queue
但注意:底层容器必须支持 front()、back()、push_back() 和 pop_front() —— 所以 vector 不可用(缺 pop_front),而 deque(默认)和 list 是安全的。
简单示例:模拟排队入场
std::queue<:string> line;
line.push("Alice");
line.push("Bob");
line.push("Charlie");
while (!line.empty()) {
std::cout line.pop();
}
输出为:Next: Alice → Next: Bob → Next: Charlie,体现 FIFO 特性。
基本上就这些。它不复杂但容易忽略边界检查,用对场景(比如 BFS、任务调度、缓冲处理)很顺手。








