zoukankan      html  css  js  c++  java
  • C++STL模板库适配器之优先级队列

    适配器之优先级队列

    一丶优先级队列简介(priority_queue)

    优先级队列.不采用严格的先进先出的顺序.而是按照优先级. 给定某一时刻位于队列头的元素.
    如果两个元素有相同的优先级.他们他们在队列中的顺序就是先进先出.底层是vector容器支持.可以使用deque,不能使用list.因为优先级队列要支持对元素的随机访问.便于排序.

    二丶优先级队列代码演示

    优先级队列方法跟队列方法一致.

    1.优先级队列代码以及使用简介

    优先级队列怎么说那.其实就是跟队列一样.只不过内部进行了排序.(排序是你自己制定的按照什么方式排序) 然后放到头部.

    • 模板申明带3个参数:priority_queue<Type, Container, Functional>,其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。
      第一种方式.不指定.默认跟队列一样.先进先出.
    #include <iostream>
    #include <queue>
    using namespace std;
    int main()
    {
      priority_queue<int> q;
      q.push(7);
      q.push(9);
      q.push(6);
      while (!q.empty()) {
        cout << q.top() << endl;
        q.pop();
      }
      system("pause");
      return 0;
    }
    

    程序输出9 7 6

    第二种方式. 指定排序方式,可以指定大小

    #include <iostream>
    #include <queue>
    using namespace std;
    int main()
    {
     // priority_queue<int,vector<int>,less<int>> q;  less()比较方式按照大的优先级方式. greater是小的
      priority_queue<int, vector<int>, greater<int>> q;
    
      q.push(7);
      q.push(9);
      q.push(6);
      while (!q.empty()) {
        cout << q.top() << endl;
        q.pop();
      }
      system("pause");
      return 0;
    }
    

    程序输出 6 7 9

    参考博客: 博客链接

  • 相关阅读:
    crash收集上报方案
    keychain的使用
    自定义Xcode文件模板
    iOS实现一个简单的扫码功能
    tableView渲染延迟
    iOS app icons
    fastlane自动打包
    iOS pod封装和升级
    手写代码 -- 数组扁平化
    手写代码 -- Promise
  • 原文地址:https://www.cnblogs.com/iBinary/p/9954663.html
Copyright © 2011-2022 走看看