• 优先队列


    优先队列:顾名思义,首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~
    百度百科上这样描述的:
      优先级队列 是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素
      优先队列的类定义  
      优先队列是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有1) 查找;2) 插入一个新元素;3) 删除.在最小优先队列(min priorityq u e u e)中,查找操作用来搜索优先权最小的元素,删除操作用来删除该元素;对于最大优先队列(max priority queue),查找操作用来搜索优先权最大的元素,删除操作用来删除该元素.优先权队列中的元素可以有相同的优先权,查找与删除操作可根据任意优先权进行. 
    优先队列,其构造及具体实现我们可以先不用深究,我们现在只需要了解其特性,及在做题中的用法,相信,看过之后你会收获不少。
    使用优先队列,首先要包函STL头文件"queue",
    代码实现:
    #include<queue>
    #include<cstdio>
    using namespace std;
    
    int date[5];
    
    int main()
    {
        priority_queue<int> Q; //默认为最大值优先
        priority_queue<int,vector<int>,greater<int> > Q1; //最小值优先
        priority_queue<int,vector<int>,less<int> > Q2; //最大值优先
    
        for(int i=1;i<=3;i++)
        {
            scanf("%d",&date[i]);
            Q.push(date[i]); //插入元素
        }
    
    
        while(!Q.empty())
        {
            int x = Q.top(); //读取队头元素
            Q.pop(); //弹出元素
            printf("%d
    ",x);
        }
    
        return 0;
    }
    View Code


  • 相关阅读:
    Alpha版与Beta版
    URL的概念
    正则表达式(即:匹配模式Pattern)
    前置与后置的递增/递减操作符
    【平板电脑模拟器】PC端-Chrome自带的功能
    【HOSTS相关】前端提供测试模板地址
    【netlimiter】的使用
    <转>window.event对象在ie与ff中的区别
    <转>全面理解javascript的caller,callee,call,apply概念(修改版)
    document.styleSheets以及js中实现样式表的切换、样式的增加减少
  • 原文地址:https://www.cnblogs.com/alan-W/p/6639825.html
Copyright © 2020-2023  润新知