今天用了一下stl中的堆,蛮好用的
介绍一下几种功能
一、堆的建立可以依赖于数组或是容器(vector,list)
二、make_heap(a,a+n)将a1--an-1建堆 make_heap(v.begin(),v.end()) 默认是大根堆
三、pop_heap(a,a+n) 将堆顶元素放到数组(容器)最后,并把剩余元素重新建堆
四、 push_heap(a,a+n)将最后一个元素插入堆的相应位置
不过stl的容器好慢啊
注意:默认是大根堆 小根堆的cmp是 a > b
bool cmp(int x,int y)
{
return x>y;
}