C++中queue是STL容器适配器,遵循FIFO原则,需包含<queue>头文件;常用操作有push、pop、front、back、empty和size,适用于BFS、任务调度等场景。

在C++中,queue(队列)是标准模板库(STL)中的一个容器适配器,遵循“先进先出”(FIFO)的原则。它常用于需要按顺序处理数据的场景,比如广度优先搜索(BFS)、任务调度等。
包含头文件与定义队列
使用队列前,需要包含对应的头文件:
#include <queue>然后可以定义一个queue对象:
std::queue<int> q; // 存储整数的队列std::queue<string> q_str; // 存储字符串的队列
常用操作方法
queue提供了一系列成员函数来操作队列中的元素:
立即学习“C++免费学习笔记(深入)”;
- push(element):将元素添加到队列尾部
- pop():删除队列头部的元素(不返回值)
- front():获取队列头部元素的引用
- back():获取队列尾部元素的引用
- empty():判断队列是否为空,返回bool值
- size():返回队列中元素的数量
基本使用示例
下面是一个简单的例子,演示如何使用queue的基本操作:
#include <iostream>#include <queue>
using namespace std;
int main() {
std::queue<int> q;
q.push(10);
q.push(20);
q.push(30);
cout << "队首元素: " << q.front() << endl; // 输出 10
cout << "队尾元素: " << q.back() << endl; // 输出 30
cout << "队列大小: " << q.size() << endl; // 输出 3
q.pop(); // 移除队首元素
cout << "弹出后的新队首: " << q.front() << endl; // 输出 20
if (!q.empty()) {
cout << "队列不为空" << endl;
}
return 0;
}
注意事项
queue只允许从队尾入队,队首出队。不能遍历queue,也不能直接访问中间元素。如果需要随机访问或双向操作,可考虑使用deque或list。
调用front()或back()前应确保队列非空,否则行为未定义。
基本上就这些,掌握这几个核心操作就能在大多数场景中正确使用C++的queue。











