58STL_priority_queue

58STL_priority_queue

基本概念

priority_queue 优先级队列,不是FIFO,而是始终把最优先级的数据放在队首

也是自适应容器(容器适配器),不能使用list类型

包含:

  • 最大值优先级队列 priority_queue< int, deque< int >> pq;
  • 最小值优先级队列 priority_queue< int, deque< int >, greater> pq;

常用函数:
pq.empty()、pq.size()、pq,top()、pq.pop()、pq.push(item)

示例代码

#include <iostream>
#include <queue>
#include <vector>
#include <deque>

using namespace std;

int main()
{
    priority_queue<int> pq;


    pq.push(10);            //默认是最大值优先级队列
    pq.push(5);
    pq.push(-1);
    pq.push(20);

    cout << "优先级队列里一共有:" << pq.size() << " 个数据" << endl;
    while(pq.size() != 0)
    {
        cout << "从优先级队列里面删除:" << pq.top() <<endl;
        pq.pop();
    }
    cout << "优先级队列里一共有:" << pq.size() << " 个数据" << endl;
    cout << endl;

    //最小值优先级队列,第三个参数是一个谓词
    priority_queue<int, deque<int>, greater<int>> pq2;      //最小值优先级队列
    pq2.push(10);
    pq2.push(5);
    pq2.push(-1);
    pq2.push(20);
    cout << "最小值优先级队列里一共有:" << pq2.size() << " 个数据" << endl;
    while(pq2.size() != 0)
    {
        cout << "从优先级队列里面删除:" << pq2.top() << endl;
        pq2.pop();
    }


    return 0;
}

发布了59 篇原创文章 · 获赞 3 · 访问量 1829

猜你喜欢

转载自blog.csdn.net/Felix_hyfy/article/details/98398930