欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ STL之priority_queue的基本用法

程序员文章站 2022-07-12 16:43:37
...

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的基本用法