优先级队列(priority_queue)

来源:互联网 发布:正确对待网络流行语 编辑:程序博客网 时间:2024/05/19 02:40
# include <iostream># include <queue># include <vector># include <deque> using namespace std;/*     优先级队列(priority_queue)      最大值优先级队列,最小值优先级队列      自适应容器       priority_queue允许对数据随机的操作,所有就不能用list      操作:         q.empty(); 是否为空         q.size();  大小         q.top(); 查看队首元素         q.pop();  在队首删除数据,就是出队         q.push(item);   根据优先级大小排序 */int main(){    priority_queue<int,vector<int>,less<int> > pq;//默认vector容器与less最大值优先级队列     priority_queue<int,deque<int>,greater<int> > pq2;//deque不是默认的是换个容器,greater最小值优先级队列     //默认是最大值优先级队列     pq.push(10);    pq.push(20);    pq.push(9);    //查看队首元素     cout<<pq.top()<<endl<<endl; //20    //对元素个数    cout<<pq.size()<<endl<<endl;     //删除队中的元素     while(!pq.empty()){        cout<<pq.top()<<" ";         pq.pop();//删除     }    cout<<endl;     //最小值优先级队列     pq2.push(100);    pq2.push(-1);    pq2.push(-99);    //删除所有元素     while(!pq2.empty()){        cout<<pq2.top()<<"   ";        pq2.pop();//删除  没有返回值     }     cout<<endl;    return 0;}

运行结果:
20

3

20 10 9

-99 -1 100

0 0
原创粉丝点击