利用vector
#include <algorithm>
make_heap : 指定迭代器区间和一个可选的比较函数创建一个堆 o(n)
push_heap : 指定区间最后一个元素加入到heap中 o(log n)
pop_heap : 弹出堆顶元素,放置在区间末尾 o(log n)
sort_heap : 堆排序算法,反复调用pop_heap实现 o(nlog n)
is_heap : 判断给定区间是否是一个heap o(N)
`is_heap_until : 找出区间中第一个不满足heap条件的位置``
利用优先队列priority_queue
priority_queue其实是对make_heap的封装。
push //插入元素,并对底层容器排序
emplace //原位构造元素并底层排序
pop //删除第一个元素
1 |
|