C++ 中priority_queue 优先级队列实例详解分享

—-想了解C++ 中priority_queue 优先级队列实例详解分享的全部内容且更多的C语言教程关注<计算机技术网>

C++ 中”priority_queue” 优先级队列实例详解

1. 简介

标准库队列使用了先进先出(FIFO)的存储和检索策略. 进入队列的对象被放置在尾部, 下一个被取出的元素则取自队列的首部. 标准库提供了两种风格的队列: FIFO 队列(FIFO queue, 简称 queue), 以及优先级队列(priority queue).

priority_queue 允许用户为队列中存储的元素设置优先级. 这种队列不是直接将新元素放置在队列尾部, 而是放在比它优先级低的元素前面. 标准库默认使用元素类型的 “<” 操作符来确定它们之间的优先级关系. 如需改变大小关系, 需要使用std::greater<temple>函数, 在functional头文件中. 

2. 代码

  #include <iostream>    // std::cout   #include <queue>     // std::priority_queue   #include <vector>     // std::vector   #include <functional>  // std::greater      int main ()   {     int myints[]= {10,60,50,20};        std::priority_queue<int> intPQueue1 (myints, myints+4);     std::priority_queue<int, std::vector<int>, std::greater<int> >       intPQueue2 (myints,myints+4);        std::cout << "less than: " << std::endl;     while( !intPQueue1.empty() ){       int pvalue = intPQueue1.top();       std::cout << pvalue << " ";       intPQueue1.pop();      }     std::cout << std::endl;        std::cout << "bigger than: " << std::endl;     while( !intPQueue2.empty() ){       int pvalue = intPQueue2.top();       std::cout << pvalue << " ";       intPQueue2.pop();      }     std::cout << std::endl;        return 0;   }   

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/487924.html

(0)
上一篇 2020年11月12日
下一篇 2020年11月12日

精彩推荐