简介
C++
make_heap()
将区间内的元素转化为heap.
push_heap()
对heap增加一个元素.
pop_heap()
对heap取出下一个元素.
sort_heap()
对heap转化为一个已排序群集.
C++11新增特性
is_heap 测试范围内的元素是否是一个二叉堆
is_heap_until 该函数返回有效二叉堆的最末范围。如果都有效,则返回last.也就是说,返回第一个破坏二叉堆结构元素的迭代器。
例如一个序列:9 8 7 6 10 5 9
画成堆的结构如下:
可以看到,10是第一个破坏堆结构的元素,9也是,运行程序:
函数
1.make_heap()
make_heap()用于把一个可迭代容器变成一个堆,默认是大顶堆。
它有三个参数。第一个参数是指向开始元素的迭代器,第二个参数是指向最末尾元素的迭代器,第三个参数是less<>()或是greater<>(),前者用于生成大顶堆,后者用于生成小顶堆,第三个参数默认情况下为less<>(),less<int>()用于生成大顶堆。
要使用less<int>(),以及greater<int>(),请添加头文件#include <functional>,且一定要加括号less<>()
#include<iostream>
#in