作业介绍
队列与优先队列
普通队列
特点:先进先出(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 小时