优先队列

优先队列其实是个堆,其中分为大根堆和小根堆

顾名思义,大根堆的根节点最大,小根堆的根节点最小

在优先队列中,这个根节点就是队列的队头元素

STL的优先队列在头文件 $<queue>$ 中

然后,由于实在对直接定义优先队列不太理解,建议使用结构体重载运算符

#include<queue>
struct dian{
    int zhi;
    bool operator < ( const dian &x ) const{
        return zhi > x.zhi;//小根堆的定义方式
    }
}
priority_queue<dian> q;

之后的操作就跟普通队列一样了,但是注意:

如想取队首元素,请使用

dian lin = q.top()

 

posted @ 2022-07-12 14:18  little_sheep_xiaoen  阅读(35)  评论(0编辑  收藏  举报