zoukankan      html  css  js  c++  java
  • stl之优先队列

    #include<iostream>
    #include<functional>
    #include<queue>
    using namespace std;

    //这是写了一个结构体
    //然后是让它具有一些具体的功能实现,
    //比如说就是下面的排序
    //结果并不是通过两个熟知的大小来进行顺序排列的
    //而是通过自己的定义来实现,像priority这个功能

    struct node {    
    friend bool operator< (node n1, node n2)    
    {        
    return n1.priority < n2.priority;
    //"<"为从大到小排列
    //">"为从小打到排列    
    }    
    int priority;    
    int value;
    };

    int main()
    {    
    const int len = 5;    
    int i;    
    int a[len] = {3,5,9,6,2};    
    //示例1    
    priority_queue<int> qi;//普通的优先级队列,按从大到小排序    
    for(i = 0; i < len; i++)        
    qi.push(a[i]);     //入栈
    for(i = 0; i < len; i++)    
    {        
    cout<<qi.top()<<" ";        
    qi.pop();    
    }    
    cout<<endl;    
    //示例2    
    priority_queue<int, vector<int>, greater<int> > qi2;
    //从小到大的优先级队列,可将greater改为less,即为从大到小    
    for(i = 0; i < len; i++)        
    qi2.push(a[i]);    
    for(i = 0; i < len; i++)    
    {        
    cout<<qi2.top()<<" ";        
    qi2.pop();    
    }     cout<<endl;    
    //示例3    
    priority_queue<node> qn;//必须要重载运算符 (通过节点的方式实现,所以是一定要求重载运算符)   
    node b[len];    
    b[0].priority = 6;
    b[0].value = 1;    
    b[1].priority = 9;
    b[1].value = 5;    
    b[2].priority = 2;
    b[2].value = 3;    
    b[3].priority = 8;
    b[3].value = 2;    
    b[4].priority = 1;
    b[4].value = 4;      
    for(i = 0; i < len; i++)        
    qn.push(b[i]);    
    cout<<"优先级"<<' '<<"值"<<endl;    
    for(i = 0; i < len; i++)     {        
    cout<<qn.top().priority<<' '<<qn.top().value<<endl;        
    qn.pop();    
    }    
    return 0;

    }

    我要坚持一年,一年后的成功才是我想要的。
  • 相关阅读:
    [转载] VsCode中使用Emmet神器快速编写HTML代码
    Hexo 博客部署到私有云服务器
    钉钉小程序通过 Canvas 将页面生成图片并保存到本地相册
    2021你应该了解的前端知识体系
    JavaScript 中的模块化
    vue中click事件方法不加括号则会将事件作为入参
    css:左右元素没对齐,调整子元素的vertical-align属性
    js通过宽高特征对图片进行分类
    配置服务器上的git仓库
    js获取当前设备信息
  • 原文地址:https://www.cnblogs.com/tianxia2s/p/3881338.html
Copyright © 2011-2022 走看看