作业介绍

队列与优先队列

普通队列

特点:先进先出(FIFO)
头文件#include <queue>
定义队列

queue<int> que;  // 定义一个整型队列

常用操作 函数 作用 示例 注意事项 push(x) 将元素 x 插入队尾 que.push(10); 无 pop() 删除队首元素 que.pop(); 队列为空时调用会导致运行时错误 front() 访问队首元素 int x = que.front() 队列为空时调用会导致运行时错误 back() 访问队尾元素 int y = que.back() 队列为空时调用会导致运行时错误 size() 返回队列元素数量 int len = que.size() 无 empty() 判断队列是否为空 if (que.empty()) 返回 true/false 优先队列 特点:元素按优先级自动排序,队首为最高优先级元素(默认大顶堆) 头文件:#include 定义优先队列:

cpp 复制 priority_queue que; // 默认大顶堆(降序) priority_queue<int, vector, greater> que; // 小顶堆(升序) 常用操作 函数 作用 示例 注意事项 push(x) 将元素 x 插入队列 que.push(10); 自动按优先级排序 pop() 删除队首元素 que.pop(); 队列为空时调用会导致运行时错误 top() 访问队首元素 int x = que.top() 队列为空时调用会导致运行时错误 size() 返回队列元素数量 int len = que.size() 无 empty() 判断队列是否为空 if (que.empty()) 返回 true/false 注意事项 运行时错误:队列为空时调用 front(), back(), pop(), top() 会触发异常。

优先队列默认行为:默认按降序排列(最大元素在队首),可通过模板参数修改为升序。

时间复杂度:

普通队列操作:均摊 O(1)

优先队列插入:O(log n),删除:O(log n)

题目

认领作业后才可以查看作业内容。
状态
正在进行…
题目
9
开始时间
2025-3-12 0:00
截止时间
2222-2-7 23:59
可延期
24 小时