CPP容器vector和list,priority_queue定义比较器

cpp 复制代码
#include <iostream>
#include <bits/stdc++.h>
using  namespace  std;
struct VecCmp{
    bool operator()(int& a,int& b){
        return a>b;
        /**
         * 对于vector和list容器,这里写了>就是从大到小
         * 对于priority_queue容器,这里写了>就是从小到大!
         */
    }
};

int main(){
    vector<int> v={5,6,7,8,9,1,2,3,4};
    cout<<"Vector Element = ";
    for(auto i:v){
        cout<<i<<" ";
    }
    cout<<endl;
    sort(v.begin(),v.end(),VecCmp());
    cout<<"VecCmp Sort-----------------------------------------"<<endl;

    for(auto i:v){
        cout<<i<<" ";
    }
    cout<<endl;
    cout<<"-----------------------------------------------------"<<endl;
    list<int> l={5,6,7,8,9,1,2,3,4};
    cout<<"List Element = ";
    for(auto i:l){
        cout<<i<<" ";
    }
    l.sort();
    cout<<endl;
    cout<<"Default list sort-------------------------------------------"<<endl;
    for(auto i:l){
        cout<<i<<" ";
    }
    cout<<"\nVecCmp sort----------------------------------------------------"<<endl;
    l.sort(VecCmp());
    for(auto i:l){
        cout<<i<<" ";
    }
    cout<<endl;
    return 0;
}

定义了priority_queue就不一样的代码是

cpp 复制代码
#include <bits/stdc++.h>
using  namespace  std;
pair<int,int> p;
class Stu{
public:
    int age;
    int grade;
    Stu(int age,int grade){
        this->age=age;
        this->grade=grade;
    }
    friend ostream& operator<<(ostream & o,const Stu& s){
        o<<"[age = "<< s.age <<", grade = "<<s.grade<<" ]";
        o<<endl;
        return  o;
    }
};
struct less1{
    bool operator()(const Stu& s1,const Stu& s2)const{
        return s1.age>s2.age;
    }
};


int main(){
    priority_queue<Stu,vector<Stu>,less1> pq;
    for(int i=0;i<10;++i){
        pq.emplace(i+18,i);
    }
    for (int i = 0; i < 10; ++i) {
        cout<<pq.top();
        pq.pop();
    }
}
复制代码
相关推荐
遇见你真好。2 天前
springboot将文件处理成压缩文件
list·springboot
清酒伴风(面试准备中......)3 天前
Java集合 List——针对实习面试
java·面试·list·实习
兔兔爱学习兔兔爱学习3 天前
leetcode61. Rotate List
数据结构·list
hello world smile3 天前
Dart中List API用法大全
flutter·list·dart
Word的妈呀4 天前
Scala的List
开发语言·list·scala
魔道不误砍柴功4 天前
巧妙注入的奥秘:在 Spring 中优雅地使用 List 和 Map
数据库·spring·list
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ5 天前
两个list集合取重复数据
java·数据结构·windows·list
dawn6 天前
鸿蒙ArkTS中的布局容器组件(Scroll、List、Tabs)
华为·list·harmonyos·arkts·deveco studio·scroll·tabs
Kiki5296 天前
c++:list模拟实现
开发语言·c++·list
flying jiang6 天前
快速复制两个list
数据结构·windows·list