priority_queue(优先队列)
优先队列本质是一个堆
优先队列是一颗完全二叉树
大根堆:priority_queue<int>q;(父比子大)
小根堆:priority_queue<int,vector<int>,greater<int> >q;(父比子小)
优先队列的时间复杂度为:O(logn)
用法:
q.push(x); | q.pop(); | q.size() | q.empty(); | q.top(); | q.clear() |
将x入队 | 对头出对 | 队伍长度 | 判空 | 对头元素 | 清空队列 |
需要注意,在进行大部分操作时,队列有需要判空
重载运算符
把一个运算符赋予新的运算规则
写法:
函数类型 operator重载的符号(const node&b)const{ 重载内容 }
例如:
bool operator<(const node & b)const{return val>b.val;}
重载了<这个运算符