作业介绍

优先队列

priority_queue又称为优先队列。在优先队列中,队首元素一定是当前队列中优先级最高的那一个。

定义

priority_queue<type, container, functional> name; 三个参数分别为:类型 容器 比较器

priority_queue<int, vector<int>, less<int> > pq_max;
priority_queue<int> pq_max;//通常简写最大值优先
priority_queue<int, vector<int>, greater<int> > pq_min;//最小值优先,注意greater后的>>中间需要空格隔开,以区分右移运算符;

成员函数

以下所有函数均为常数复杂度

  • top() 访问堆顶元素(此时优先队列不能为空)
  • empty() 询问容器是否为空
  • size() 查询容器中的元素数量

以下所有函数均为对数复杂度

  • push(x) 插入元素,并对底层容器排序
  • pop() 删除堆顶元素(此时优先队列不能为空)

其他 对于自定义类型,如结构体,需要重载运算符,制定比较规则。

例如:

struct node{
	int x, y;
	bool operator <(const node &s)const
	{
		if(x < s.x)//重载<运算符
		{
			return true;
		}
		return false;
	}
};

题目

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