STL中的heap

头文件 #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:数据流中的中位数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 变易算法所谓变易算法是指那些改变容器中的对象的操作。 1.1 copy组 template <class I...
    林小七Raul阅读 426评论 0 0
  • 让我如何把你看清楚 在这黑夜即将来临的时刻 左右摇摆的是风 掠过 摇晃着我心情的起落 天空漫卷着狂云 涌动成...
    惊涛的诗阅读 311评论 4 21
  • 因境内有青海湖,故得名青海省。据《水经注》记载,公元5世纪前,这个地方就叫青海了,也有写作西海的。唐以后多以青海...
    duoduo_four阅读 1,354评论 0 1
  • 我们虚度时光, 连着落日一起浪费。 野草在你脚下, 我在你背上飞出了翅膀。 带我去远方吧, 只要有你。
    sweetcakecat阅读 151评论 0 0