本文主要是介绍C++ STL中堆的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include<algorithm>
#include <functional>
using namespace std;
vector<int> a;
//建堆,建好后第一个元素最大(小)
make_heap(a.begin(),a.end(), less<int>() );
//取最大值
x=a.front();
pop_heap(a.begin(),a.end(), less<int>() );
a.pop_back(); // 删除最后一个数据
//插入元素
a.push_back(x);
push_heap(a.begin(),a.end(),cmp);
//堆排序
sort_heap(a.begin(),a.end(),cmp);
// push_heap ( begin , end ) 将最后一个元素插入堆中(堆自动调整)
// pop_heap ( begin , end ) 将第一个元素从堆中删去(堆自动调整),并放到最后
// find ( begin , end , value ) 从begin到end查找value,若找不到,返回end
这篇关于C++ STL中堆的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!