C++ 對結構體按某一元素進行排序

sort

利用sort函數實現。

#include <algorithm>
using namespace std;
sort(first_pointer,first_pointer+n,cmp)

此函數有3個參數:

參數1:第一個參數是數組的首地址,一般寫上數組名就可以,因爲數組名是一個指針常量。

參數2:第二個參數相對較好理解,即首地址加上數組的長度n(代表尾地址的下一地址)。

參數3:默認可以不填,如果不填sort會默認按數組升序排序。也就是1,2,3,4排序。也可以自定義一個排序函數,改排序方式爲降序什麼的,也就是4,3,2,1這樣。

sort(A,A+n):對數組A的0~n-1元素進行升序排序。
sort(v.begin(),v.end()):對於向量V進行升序排序。

bool compare(int a,int b)
{
return a<b; //升序排列,如果改爲return a>b,則爲降序
}

若將第三個參數的函數寫成:

bool compare(Stu s1,Stu s2)
{
return s1.score<s2.score;
}
sort(S,S+100,compare);

則表示按照結構體Stu的score升序排序。

發佈了19 篇原創文章 · 獲贊 4 · 訪問量 2025
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章