#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
class priority_queue
{
private:
vector<int> vec;
public:
int size();
bool empty();
int top();
void pop();
void push(int n);
};
int priority_queue::size(){return vec.size();}
bool priority_queue::empty(){return vec.empty();}
int priority_queue::top(){return vec.front();}
void priority_queue::pop()
{
pop_heap(vec.begin(),vec.end());
vec.pop_back();
}
void priority_queue::push(int n)
{
vec.push_back(n);
push_heap(vec.begin(),vec.end());
}
int main()
{
priority_queue pq;
pq.push(3);
pq.push(102);
pq.push(12);
pq.push(9);
pq.push(7);
while(!pq.empty())
{
cout<<pq.top()<<" ";
pq.pop();
}
cout<<endl;
system("pause");
return 0;
}
基本于STL heap 之 priority_queue
最新推荐文章于 2025-04-18 15:23:29 发布