堆的基本操作
- make_heap() 默认最大堆,最小堆加参数greater< int >()
- pop_heap() 先pop,然后在容器中删除
- push_heap() 先在容器中加入,再push
- sort_heap()
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
template<typename Container>
void PrintContainer(Container container)
{
for (auto i : container)
{
cout << i << ' ';
}
cout << endl;
}
int main()
{
int a[] = {10, 50, 40, 20, 30};
vector<int> ivec(a, a+5);
PrintContainer(ivec);
make_heap(ivec.begin(), ivec.end(), greater<int>());
PrintContainer(ivec);
pop_heap(ivec.begin(), ivec.end(), greater<int>());
ivec.pop_back();
PrintContainer(ivec);
ivec.push_back(100);
push_heap(ivec.begin(), ivec.end(), greater<int>());
PrintContainer(ivec);
sort_heap(ivec.begin(), ivec.end());
PrintContainer(ivec);
return 0;
}