sort函數(shù)的用法

在leetcode刷題的時(shí)候發(fā)現(xiàn)原來sort還有這個(gè)用法記錄一下(原諒我的無知)。

sort的用法

添加頭文件 #include<algorithm>
sort源碼解析

  • sort(pp.begin(),pp.end(),排序方式)
    (1)第一個(gè)是要排序的數(shù)組的起始地址。
    (2)第二個(gè)是結(jié)束的地址(最后一位要排序的地址)
    (3)第三個(gè)參數(shù)是排序的方法,可以是從大到小也可是從小到大,還可以不寫第三個(gè)參數(shù),此時(shí)默認(rèn)的排序方法是從小到大排序。
  • 那么怎么才能使其從大到小排序呢!
#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);//在這里就不需要對(duì)complare函數(shù)傳入?yún)?shù)了,
//這是規(guī)則
     for(int i=0;i<10;i++)
        cout<<a[i]<<endl;
     return 0;
}
  • 那么假使對(duì)于一個(gè)結(jié)構(gòu)體進(jìn)行排序呢?是否可以使用sort函數(shù)呢?
struct Interval {
   int start;
   int end;     
};
vector<Interval>& intervals;
sort(intervals.begin(), intervals.end(), [](Interval &a, Interval &b) {return a.start < b.start;});
//可以直接將結(jié)構(gòu)體進(jìn)行排序

又或者如此;

bool cmp(interval x,interval y)
{
   return x.start>y.start;
}
sort(intervals.begin(), intervals.end(), cmp);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容