C++ STL之priority_queue的基本用法

1.基本介绍

  • 优先队列priority_queue具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序

2.基本操作

s.top()    //访问队头元素
s.size()   //队中元素个数
s.empty()  //队是否为空
s.push()    //插入元素并排序
s.pop()    //弹出队头元素

注意:s.back()操作

//升序队列
priority_queue <int,vector<int>,greater<int> > q;
//降序队列
priority_queue <int,vector<int>,less<int> >q;

3.示例

#include<bits/stdc++.h>
using namespace std;

int main()
{
    priority_queue<int> q1;
    priority_queue< int, vector<int>, less<int> > q2;
    priority_queue< int, vector<int>, greater<int> > q3;
    int a[6] = {7,3,4,2,5,1};
    for(int i=0;i<6;i++){
        q1.push(a[i]);
        q2.push(a[i]);
        q3.push(a[i]);
    }
    printf("priority_queue<int>:\n");  //默认降序
    while(!q1.empty()){
        printf("%d ",q1.top());
        q1.pop();
    }
    printf("\n\npriority_queue< int, vector<int>, less<int> >:\n");  //降序
    while(!q2.empty()){
        printf("%d ",q2.top());
        q2.pop();
    }
    printf("\n\npriority_queue< int, vector<int>, greater<int> >:\n");  //升序
    while(!q3.empty()){
        printf("%d ",q3.top());
        q3.pop();
    }
}

C++ STL之priority_queue的基本用法

上一篇:西电复试之——真题2011D 哈夫曼树


下一篇: