基本使用:
vector<int> a={3,4,2,5,2,5,7,8};
sort(a.begin(),a.end()); //默认从小到大排序
sort(a.begin(),a.begin()+4); //对前四个进行排序
sort(a.begin(),a.end(),less<int>()); //从小到大排序
sort(a.begin(),a.end(),greater<int>()); //从大到小排序
int arr[10]={1,33,56,74,34,34,555,43,43,343};
sort(arr,arr+10);
自定义比较函数(多用于结构体)
//按照pair的第一个参数进行从小到大排序
bool my_sort(pair<int,int>a,pair<int,int>b){
if(a.first==b.first)
return p1.second<p2.second;
else
return p1.first>p2.first;
}
vector<pair<int,int> >res;
res.push_back(pair<int,int> (3,1));
res.push_back(pair<int,int> (2,3));
res.push_back(pair<int,int> (4,5));
res.push_back(pair<int,int> (2,4));
sort(res.begin(),res.end(),my_sort);
pair默认是先对第一个关键字从小到大排序,如果第一关键字相同,在对第二关键字从小到大排序,都是升序
sort(res.begin(),res.end());
和上面代码效果等价,不需要自己写比较函数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)