priority_queue的定义:
priority_queue<type>q1;//stl一般默认为vector容器
priority_queue<int,vector<int>,cmp>q2;
cmp是比较方法 ,与sort里的cmp函数不同,这里的cmp需要用到结构体重载
struct cmp
{
bool operator()(int&a,int&b)const
{
return a>b;//升序,默认降序
}
};
priority_queue<int, vector<int>, cmp>q2;
priority_queue的基本操作:
priority_queue(int,vector<int>,cmp)q;
入队:q.push(val);
出队:q.pop();
得到队列的大小:q.size();
判断队列是否为空:q.empty();
得到队首元素:q.top();//只能得到队首元素 priority_queue是一种特殊的队列,队列的存储是散的
priority_queue<int, vector<int>, cmp>q;//手动升序
//priority_queue<int>q;默认降序
q.push(100);
for (int i = 1; i <= 10; i++)
{
q.push(i);
}
cout << q.size() << endl;
q.pop();
cout << q.top() << endl;
while (!q.empty())
{
cout << q.top() << ' ' ;
q.pop();
}
//队列输出是升序的 而实际上队列的储存并非升序而是散的
//可以调试观察
cout << endl;