zoukankan      html  css  js  c++  java
  • 【STL学习】priority_queue

    介绍:

    三个参数:priority_queue<Type,Container, Functional>

    ①Type:数据类型②:Container:容器(默认是vector)③Functional:元素比较方式

    栗子:

    一:元素类型为基本类型

    按升序排序 ( 按降序排序则把第三个参数改为less<int> ) :

    #include <iostream>
    #include <queue>
    using namespace std;
    
    int main(int argc, const char * argv[]) {
        priority_queue<int,vector<int>,greater<int> >q;
        for(int i=0;i<5;i++){
            q.push(i);
        }
        while(!q.empty()){
            cout<<q.top()<<endl;
            q.pop();
        }
    
        return 0;
    }
    二:元素类型为自定义类型
    #include <iostream>
    #include <queue>
    using namespace std;
    struct Node{
    int x;
    int y;
    }node;
    struct cmp{
        bool operator()(Node a,Node b){
        if(a.x==b.x)return a.y<b.y;
        return a.x<b.x;
    }
    };
    int main(int argc, const char * argv[]) {
        priority_queue<Node,vector<Node>,cmp >q;
        for(int i=0;i<5;i++){
            node.x=i;
            node.y=i+1;
            q.push(node);
        }
        while(!q.empty()){
            cout<<q.top().x<<' '<<q.top().y<<endl;
            q.pop();
        }
    
        return 0;
    }
    祝你早日攒够失望,然后开始新的生活。
  • 相关阅读:
    promise
    ES6中的类
    css基础知识
    ES6数据解构:set map 的介绍
    ES6对象的拓展
    ES6函数的拓展
    ES6数组的拓展
    ES6字符串和数值的扩展
    webpack的三种运行方式
    Mysql数据增删改操作以及复制表小技巧
  • 原文地址:https://www.cnblogs.com/LuRenJiang/p/7168215.html
Copyright © 2011-2022 走看看