欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

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

时间:2021-10-29 08:32:08|栏目: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; 
} 

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

上一篇:C++编程中删除运算符与相等运算符的使用解析

栏    目:C代码

下一篇:VScode配置C++运行环境的完整步骤

本文标题:C++ 中"priority_queue" 优先级队列实例详解

本文地址:http://www.codeinn.net/misctech/181684.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有