天天看點

C++中的sort函數

頭檔案

#include <algorithm>

using namespace std;

1.如果sort函數隻帶兩個參數,如:

int arr[5];

sort(arr,arr+5);

則表示将數組arr中的數按升序排列。

其中第一個參數是要排序的數組的首位址,第二個參數是數組的尾位址的下一位址。

2.如果sort函數中的第三個參數為自定義的cmp,首先cmp是一個bool型。

如想讓數組arr降序排列:

bool cmp(int x,int y)

{

if(x>y) return 1;

else return 0;

}

排序的時候則為sort(arr,arr+5,cmp);

3.假如定義了一個結構體Node

struct Node{

int win, lost, points, net;

} arr[1000];

bool cmp(Node a, Node b){

if(a.points > b.points) return true;

if(a.points == b.points && a.net > b.net) return true;

if(a.points == b.points && a.net == b.net && a.win > b.win)

return true;

if(a.points == b.points && a.net == b.net && a.win == b.win && strcmp(a.name, b.name) < 0)

return true;

return false;

}

排序的時候為sort(arr, arr + n, cmp);

表示先按points降序排序;如果points相同則按net降序排序;如果points和net都相同,則按net降序排序。

題目連結:HDU1225

繼續閱讀