頭檔案
#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