zoukankan      html  css  js  c++  java
  • queue 与 vector

    优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序

    每次的push和pop操作,队列都会动态的调整,以达到我们预期的方式来存储。

    例如:我们常用的操作就是对数据排序,优先队列默认的是数据大的优先级高

    所以我们无论按照什么顺序push一堆数,最终在队列里总是top出最大的元素。

    priority_queue<int, vector<int>, greater<int> >pq; 格式
    第一个参数为数据类型
    第二个参数为容器类型。
    第三个参数为比较函数。////可以自定义 默认从大到小 ///先跳过自定义
    STL里面默认用的是 vector. 比较方式默认用从大到小
    还有一点要注意的是priority_queue中的三个参数,后两个可以省去,因为有默认参数,不过如果,有第三个参数的话,必定要写第二个参数。

    用法:

    1. ///q.push (x);///将x接到队列的末端。  
    2. ///q.top ();///访问队首元素  
    3. ///q.pop ();///删除队首元素  
    4. ///q.front();///访问队首元素   最早被压入队列的元素。  
    5. ///q.back();///访问队尾元素    最后被压入队列的元素。  
    6. ///q.size();///访问队列中的元素个数  
    7. ///q.empty ();///判断是否为空   当队列空时,返回true。  
    1. //priority_queue <int>q;///默认从大到小排序输出  
    2.     ///priority_queue <int ,vector<int> , greater <int>  >q;///从小到大排序输出  >>会被认为是错误  中间要加空格  
    1.  while (!q.empty ())///使用的时候要先判断队列是否为空 不为空的话就清空。。  
    2.             q.pop ();  
  • 相关阅读:
    Spring AOP总结(三)
    Spring AOP源码解析(二)
    java9新特性
    BeanFactory和ApplicationContext的区别总结
    Elasticsearch7.X为什么移除类型(type)
    elasticsearch性能优化(二)
    elasticsearch性能优化(一)
    elasticsearch的master选举机制
    自动化构建和部署应用系统平台
    关系型数据库之mysql-01
  • 原文地址:https://www.cnblogs.com/wshyj/p/6149112.html
Copyright © 2011-2022 走看看