`priority_queue` 是 C++ 标准库中的一个容器适配器。它基于堆数据结构实现,用于存储和管理一组元素。
`priority_queue` 的特点是每次插入一个元素时,都会自动根据元素的优先级进行排序,使得优先级最高的元素位于队列的最前面。同时,它还提供了访问队列中最高优先级元素的方法。
`priority_queue` 的主要操作包括插入元素、访问元素、删除元素和获取队列大小等。
在 C++ 中,`priority_queue` 是通过 `<queue>` 头文件进行包含的。它是一个模板类,可以存储任意类型的元素。在创建 `priority_queue` 对象时,可以指定比较函数来定义元素的优先级。
以下是 `priority_queue` 的一些常用操作:
- `push(element)`: 向队列中插入一个元素。
- `pop()`: 删除队列中最高优先级的元素。
- `top()`: 返回队列中最高优先级的元素。
- `empty()`: 检查队列是否为空。
- `size()`: 返回队列中元素的个数。
由于 `priority_queue` 是一个容器适配器,它的底层实现可以是数组、链表或其他数据结构。但通常情况下,`priority_queue` 的实现会使用堆来维护元素的优先级。
struct jgt
{
int num, dj;
friend bool operator<(struct jgt a, struct jgt b)
{
return a.num < b.num;
}
};
priority_queue <struct jgt> q;
'<' 小于,把大的排前面.
'>' 大于,把小的排前面;