STL set,map , priority_queue 及 lower_bound 的排序比较函数

时间:2022-09-28 16:49:33



代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <stack>
#include <map>
#include <set>
#include <queue>
#include <vector>
using namespace std;


struct cmp{
bool operator ()(const int &a,const int &b)const{
return a<b;
}
};


set<int,cmp>a;
set<int,cmp>::iterator it;


map<int,int,cmp> b;


priority_queue <int,vector<int>,cmp> q; //在优先队列里 定义顺序和内部顺序相反。
int x[110];
int main(){

a.insert(1);
a.insert(2);
a.insert(4);
it=a.lower_bound(1);
//cout<<*it<<endl;

b.insert(pair<int,int>(1,1));
b.insert(pair<int,int>(2,2));
//cout<<b.begin()->first;


x[0]=1,x[1]=2,x[2]=4;x[3]=-1;
cout<<*lower_bound(x,x+3,3,cmp());//cmp函数如果数组是递增序列,cmp函数里需要定义为a<b。 否则相反。
//cout<<*it<<endl;

}