sort函数的用法

在leetcode刷题的时候发现原来sort还有这个用法记录一下(原谅我的无知)。

sort的用法

添加头文件 #include<algorithm>
sort源码解析

  • sort(pp.begin(),pp.end(),排序方式)
    (1)第一个是要排序的数组的起始地址。
    (2)第二个是结束的地址(最后一位要排序的地址)
    (3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。
  • 那么怎么才能使其从大到小排序呢!
#include<iostream>
#include<algorithm>
using namespace std;
bool complare(int a,int b)
{
     return a>b;
}
int main()
{
     int a[10]={9,6,3,8,5,2,7,4,1,0};
     for(int i=0;i<10;i++)
     cout<<a[i]<<endl;
     sort(a,a+10,complare);//在这里就不需要对complare函数传入参数了,
//这是规则
     for(int i=0;i<10;i++)
        cout<<a[i]<<endl;
     return 0;
}
  • 那么假使对于一个结构体进行排序呢?是否可以使用sort函数呢?
struct Interval {
   int start;
   int end;     
};
vector<Interval>& intervals;
sort(intervals.begin(), intervals.end(), [](Interval &a, Interval &b) {return a.start < b.start;});
//可以直接将结构体进行排序

又或者如此;

bool cmp(interval x,interval y)
{
   return x.start>y.start;
}
sort(intervals.begin(), intervals.end(), cmp);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容