目录
1、std::queue 的基本操作
2、std::queue 队列的应用场景
3、std::queue 实例
队列(Queue)是一种先进先出(FIFO)的数据结构,类似于现实生活中排队等待服务的场景。队列中的元素只能在队列的末尾添加,只能从队列的开头删除。
1、std::queue 的基本操作
(1)入队(enqueue):出队将队列的第一个元素删除并返回;
(2)出队(dequeue):入队将元素添加到队列的末尾。
1. enqueue(item):将元素添加到队列的末尾。
2. dequeue():从队列的头部删除并返回元素。
3. front():返回队列头部的元素,但不删除它。
4. size():返回队列中元素的个数。
5. empty():检查队列是否为空。
6. clear():清空队列中的所有元素。
7. push(item):将元素添加到队列的末尾(与enqueue()相同)。
8. pop():从队列的头部删除并返回元素(与dequeue()相同)。
9. back():返回队列尾部的元素,但不删除它。
10. swap(queue2):将当前队列与另一个队列交换。
队列可以用数组或链表实现,可以用于解决许多问题,如广度优先搜索、缓存、任务调度等。
2、std::queue 队列的应用场景
(1)任务调度:将任务加入队列,按照先进先出的顺序执行。
(2)消息队列:将消息加入队列,按照先进先出的顺序进行处理。
(3)缓存:缓存数据时,可以使用队列来限制缓存大小,当缓存满时,将最早加入的数据删除。
(4)广度优先搜索:在图中进行广度优先搜索时,可以使用队列保存待访问的节点。
队列的时间复杂度为O(1),因为入队和出队操作只需要常量时间。
3、std::queue 实例
#include <iostream>
#include <queue>int main()
{std::queue<int> q;q.push(1);q.push(2);q.push(3);std::cout << "队列中元素的数量为:" << q.size() << std::endl;std::cout << "队首元素为:" << q.front() << std::endl;q.pop();std::cout << "弹出队首元素后,队首元素为:" << q.front() << std::endl;return 0;
}