STL heap和first_queue(未完结)

Posted zhshh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL heap和first_queue(未完结)相关的知识,希望对你有一定的参考价值。

STL heap和first_queue

标签(空格分隔): @zhshh STL heap first_queue


可以看看这个文章

大家都知道,priority_queue是用堆实现的,可以通过重载()运算符选择使用最大堆或最小堆。以前一直觉得stl里面的heap相关的函数都是多余的,因为一般的heap操作都可以用priority_queue来做。直到今天看了July博客中的那道求前k小的数(http://blog.csdn.net/v_JULY_v/article/details/6370650)才发现stl中heap操作独立存在的必要
来自原文
stl里关于heap的函数与priority_queue的区别----CSDN jackycmu

STL类似的结构有heapfirst_queue,区别是heap可以在元素放入完成后再建堆,从而在O(n)时间内完成,而first_queue必须不断插入,因此时间是O(n*lg n)

STL_heap函数(在库algorithm里面)

make_heap 建堆
push_heap 插入元素
pop_heap 删除元素

sort_heap 堆排序(和堆操作没任何联系,sort_heap之后数据是排序的,就不是堆了)

此外还有is_heap(似乎是C++11的,不建议在OI使用,不知道是否支持)等等,C++reference

以上是关于STL heap和first_queue(未完结)的主要内容,如果未能解决你的问题,请参考以下文章

算法学习老算法,新姿势,STL——Heap

STL--heap概述:make_heap,sort_heap,pop_heap,push_heap

STL -- heap结构及算法

STL_算法_Heap算法(堆排)(精)

STL_算法_Heap算法(堆排)(精)

STL---heap概述及用法