头文件 #include <algorithm>
下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函数)less和greater分别用来实现最大堆和最小堆(别搞反了!),其规则——如果函数的第一个参数小于第二个参数应返回true,否则返回false。
建立堆
make_heap(_First, _Last, _Comp)
默认是建立最大堆的。对int类型,可以在第三个参数传入greater()得到最小堆。
在堆中添加数据
push_heap (_First, _Last, _Comp)
要先在容器中加入数据,再调用push_heap ()
在堆中删除数据
pop_heap(_First, _Last, _Comp)
要先调用pop_heap()再在容器中删除数据
堆排序
sort_heap(_First, _Last, _Comp)
排序之后就不再是一个合法的heap了
具体例子可以参见《剑指offer》面试题41:数据流中的中位数