STL:顶堆
大顶堆:(默认)
priority<T, vector<T>, less<T» pri
小顶堆:
priority<T, vector<T>, greater<T» pri
原地建堆
vector<int> p
eg.
make_heap(p.begin(), p.end(),greater<>()/*camp()*自定义/)
pop_heap(p.begin(), p.end()) //将第一个也是最大的元素移动到最后
改变头
p.back() =
push_heap(p.begin(), p.end()) //释放恢复排序的信号