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();
    }
}
复制代码
相关推荐
cdut_suye21 小时前
STL之list篇(下)(从底层分析实现list容器,逐步剥开list的外表)
开发语言·数据结构·c++·学习·算法·stl·list
编程版小新1 天前
C++初阶:STL详解(七)——list的模拟实现
开发语言·c++·学习·迭代器·list·list的模拟实现
T-ang.2 天前
第九章---for循环及在STL的应用(vector\map\set\list\for_each)、嵌套while、while 统一输出、do-while
开发语言·数据结构·c++·学习·算法·list·改行学it
月色不够温柔ii2 天前
C++容器之list基本使用
开发语言·数据结构·c++·链表·list
gb42152872 天前
java中有两个list列表,尽量少的去循环
java·开发语言·list
renshen43222 天前
java list两两合并的10种方式
java·数据结构·list
请不要叫我菜鸡2 天前
Go基础学习06-Golang标准库container/list(双向链表)深入讲解;延迟初始化技术;Element;List;Ring
后端·学习·链表·golang·list·延迟初始化
六点半8883 天前
【C++】“list”的介绍和常用接口的模拟实现
开发语言·数据结构·c++·算法·青少年编程·list
Stark、5 天前
C++模拟实现vector容器【万字模拟✨】
开发语言·c++·后端·stl·vector·学习方法·模拟实现
MessiGo5 天前
C++ STL(3)list
开发语言·c++·list