STL中的heap

头文件 #include

下面的_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:数据流中的中位数

你可能感兴趣的:(STL中的heap)