答案:queue是C++中基于deque或list实现的FIFO容器,提供push()入队(O(1))、pop()出队(O(1))操作,并通过front()和back()访问队首、队尾元素。

在C++中,queue(队列)是一种先进先出(FIFO, First In First Out)的容器适配器,常用于需要按顺序处理数据的场景,比如广度优先搜索(BFS)、任务调度等。它定义在 queue 头文件中,底层通常由 deque 或 list 实现。
入队操作:push()
使用 push() 函数将元素添加到队列的末尾(队尾)。新元素被插入后,会成为下一个将被移出的元素(当所有前面的元素都被弹出后)。
- 语法:
queue.push(value); - 时间复杂度:O(1)
- 示例:
q.push(10);
q.push(20);
q.push(30);
此时队列中的元素从队头到队尾为:10 → 20 → 30。
出队操作:pop()
pop() 函数用于移除队列头部的元素(队头),即最早进入队列的那个元素。
立即学习“C++免费学习笔记(深入)”;
- 语法:
queue.pop(); - 注意:pop() 不返回值,只删除队头元素
- 时间复杂度:O(1)
- 示例:
q.pop(); // 移除20
执行两次 pop 后,队列只剩 30。
访问队首与队尾元素
虽然 queue 不支持随机访问,但提供了两个函数来查看特定位置的元素:
- front():返回队头元素的引用,即可读取最早加入的元素
- back():返回队尾元素的引用,即可读取最近加入的元素
- 两者都不删除元素
- 使用前必须确保队列非空,否则行为未定义
- 示例:
常用API与状态判断
除了增删查,queue 还提供了一些实用的成员函数来管理状态:
- empty():判断队列是否为空,返回 bool 值。推荐在 pop 或 front 前调用以避免错误
- size():返回当前队列中元素个数,返回类型为 size_t
典型安全操作写法:
while (!q.empty()) {cout q.pop();
}
基本上就这些。掌握 push、pop、front、back、empty 和 size 就能应对大多数使用场景。注意不要对空队列调用 front 或 pop,这是常见错误来源。queue 的设计简洁,适合专注顺序处理逻辑。










