美文网首页
STL中的heap

STL中的heap

作者: zhnidj | 来源:发表于2018-08-10 22:02 被阅读0次

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

相关文章

  • STL中的heap

    头文件 #include 下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函...

  • STL heap

    STL中并没有把heap作为一种容器组件,heap的实现亦需要更低一层的容器组件,诸如list,array,vec...

  • STL容器

    STL容器类型 序列式容器:vector,list(双向链表),deque,stack,queue,heap,pr...

  • 优先队列的实现—二叉堆

    我相信大家都用过STL中的priority_queue,并且你可能也知道其底层原理是二叉堆(binary heap...

  • 一步步看懂STL源码(3)--heap

    heap概述 heap并不是STL容器组件,更像是一组操作的集合。什么是堆:堆是一颗完全二叉树,且任意节点的值不大...

  • Effective C++ Chapter8-定制new和del

    STL容器所使用的heap内存是由容器所拥有的分配器对象管理,而不是new和delete直接管理。本章不讨论。 4...

  • 数据结构 -- C++ STL中的数据结构与算法[1]

    数据结构 -- C++ STL中的数据结构与算法[1] 什么是 STL STL是Standard Template...

  • STL内存管理详细分析

    STL中内存管理非常精妙,本文以SGI STL为例,分析其内存管理的设计思路,也是对侯捷老师的《STL源码剖析》中...

  • 浅析STL allocator

    STL allocator是做什么用? 在学习STL中containers会发现C++ STL里定义了很多的容器(...

  • Android Native内存问题检测

    android中的内存总体上可以分为两块,java heap与native heap。java heap的内存问题...

网友评论

      本文标题:STL中的heap

      本文链接:https://www.haomeiwen.com/subject/aftrbftx.html