- gf24153 的博客
《Mod笔谈:优先队列》
- @ 2026-9-30 11:10:15
排序大手子!!!
\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/\o/
优先队列,就是一个二叉堆……
他永远遵循排序原则!
简单到他只有五个函数!!!
| 函数名 | 功能 |
|---|---|
| top() | 给出队头 |
| push() | 把元素放入队列 |
| pop() | 让队头出队 |
| size() | 给出队列长度 |
| empty() | 判断队列是否为空 |
我们只需把元素放入队列,他就能给我们自动排序
但是他是默认从大到小排……
怎么让它从小到大排呢?
1.标准方法
priority_queue<int,vector<int>,greater<int>>q;
直接定义小根堆
那struct咋办?
2.结构体专用方法!
struct Node{
int x,y;
bool operator<(Node k)const{
if(x==k.x) return y>k.y;
return x>k.x;
}
}
定义如何比较结构体,sort都通用!
太强了👍