STL heap

我不会堆了
STL heap 默认建立大根堆
可以重载伪函数比如struct cmp { inline bool operator () (const node & x, const node & y) const { return x.val > y.val; } };
假如有个vector
vectornums;
make_heap(nums.begin(),nums.end(),cmp());用于建堆 可以做到\(O(n)\)
nums.push_back(x);push_heap(nums.begin(),nums.end(),cmp());可以加入元素
pop_heap(nums.begin(),nums.end(),cmp());nums.pop_back();可以删除堆顶

你可能感兴趣的:(STL heap)