C 排序函式中cmp 比較函式詳解

2021-08-02 07:38:39 字數 872 閱讀 4690

整型資料比較

bool cmp(int a,int b)

int a[10];

sort(a,a+10,cmp);

實型資料比較

bool cmp(float a,float b)

int a[10];

sort(a,a+10,cmp);

結構體型別比較

題目:有n個學生的資料,將學生資料按成績高低排序,如果成績相同則按姓名字元的字母序排序,如果姓名的字母序也相同則按照學生的年齡排序,並輸出n個學生排序後的資訊。

題目鏈結( 九度oj的):

核心**:

struct student

stu[1001];

bool cmp(student a,student b)

sort(stu,stu+n,cmp);

關於sort函式中的cmp函式有著不同的寫法,以剛剛的整形元素比較為例

還有人是這麼寫的:

bool cmp(const

int &a, const

int &b)

int a[10];

sort(a,a+10,cmp);

補充知識:c中qsort中的cmp()與sort的cmp()對比(以int為例)

名稱返回值型別

語句qsort(c)

intreturn a - b

sort(c++)

bool

return a < b

C 內建比較函式sort和cmp排序問題和注意點

刷題中排序常用,sort指出三個引數 起始位置 終止位置 cmp函式排序方法 其中值得注意的是,尾元素是最後乙個元素的下一位置 對於sort,vector也可以,使用begin和end指標即可,其他普通陣列直接是頭指標,頭指標 元素個數 重點在於cmp的問題,這裡經常混淆,只需要記住 希望元素按什麼...

sort函式中的cmp函式使用

在leetcode上面刷題的時候發現大家使用sort函式的時候總能用出一些與眾不同的比較方式,其中使用cmp自己定義排序放的非常的方便,因此我們這裡記錄一下cmp的使用。首先我們先來看一下最基礎的排序方式 這樣我們得到的結果就是乙個非常簡單的非遞減排序 那麼cmp函式的使用是怎麼樣的呢,cmp函式的...

qsor快排序以及cmp函式

void qsort void base,size t num,size t width,int cdecl compare const void const void 標頭檔案 stdlib.h 舉例 char a 1000 int m strlen a qsort a,m,sizeof a 0 ...