zoukankan      html  css  js  c++  java
  • 模板:优先队列(priority_queue)

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <queue>
     4 #include <vector>
     5 
     6 using namespace std;
     7 
     8 struct node
     9 {
    10     int priortity;
    11     int value;
    12 
    13     friend bool operator<(node n1,node n2)
    14     {
    15         return n1.priortity < n2.priortity; // < 从大到小 , > 从小到大
    16     }
    17 };
    18 
    19 int main()
    20 {
    21     const int len = 5;
    22     int i;
    23     int a[len] = {3,5,9,6,2};
    24 
    25     //example 1:
    26     priority_queue<int> qi;
    27 
    28     for(i = 0; i < len; ++i)
    29     {
    30         qi.push(a[i]);
    31     }
    32 
    33 
    34     for(i = 0; i < len; ++i)
    35     {
    36         cout << qi.top() << endl;
    37         qi.pop();
    38     }
    39 
    40     //example 2:
    41     priority_queue<int,vector<int>,greater<int> > qi2; // greater从小到大,less从大到小
    42 
    43     for(i = 0; i < len; ++i)
    44     {
    45         qi2.push(a[i]);
    46     }
    47 
    48     for(i = 0; i < len; ++i)
    49     {
    50         cout << qi2.top() << endl;
    51         qi2.pop();
    52     }
    53 
    54     //example 3:
    55     priority_queue<node> qn;
    56     node b[len];
    57     b[0].priortity = 6; b[0].value = 1;
    58     b[1].priortity = 1; b[1].value = 5;
    59     b[2].priortity = 2; b[2].value = 3;
    60     b[3].priortity = 8; b[3].value = 2;
    61     b[4].priortity = 1; b[4].value = 4;
    62 
    63     for(i = 0; i < len; ++i)
    64     {
    65         qn.push(b[i]);
    66     }
    67 
    68     for(i = 0; i < len; ++i)
    69     {
    70         cout << qn.top().priortity << "	" << qn.top().value << endl;
    71         qn.pop();
    72     }
    73 
    74     return 0;
    75 }

    参考文献:

    http://wenku.baidu.com/link?url=_Y5TTAR5M4O2Eakp3lckzhc9ZkvGKp0Bqk-iSgxzUQOL5kuxGwwLZlFO1cq4ZqqvJV1HoNgurOftPRJvKp9Ng3S83c43tS1tQp0jxFHBp-u

  • 相关阅读:
    mysql explain用法和结果的含义
    heapset水平自动扩容
    dashboard安装
    对List集合中的对象进行按某个属性排序
    MySql查询当天、本周、本月、本季度、本年的数据
    三种List集合的遍历方式
    Date相关处理
    ubuntu-14.04.2-desktop使用方法
    PowerShell命令卸载Win10内置应用
    Windows下MySQL绿色版安装配置与使用
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3565400.html
Copyright © 2011-2022 走看看