C 結構體排序

2022-07-08 03:03:11 字數 1134 閱讀 2506

在c++中,對結構體的排序方式比c語言豐富的多。在c語言中,我們主要是通過qsort進行排序操作(拋開手寫排序演算法不說)。

在c++中,有乙個十分強大的排序函式sort,他的內部綜合了許多種排序演算法,因此非常高效。並且,用它來對結構體排序也十分方便。

先貼一段示例**:

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

namespace

std;

7struct

mi13

bool

operator

< (const mi &a)const

//對應less,代表公升序,改變下行符號方向反之

1417

bool

operator > (const mi &a)const

//對應greater,代表降序、、、改變下行符號方向反之

1821

};22

bool cmp(const mi &a,const mi &b)

25int

main()

34//

sort(vec.begin(),vec.end());

//公升序排序

35//

sort(vec.begin(),vec.end(),cmp);

//公升序排序

36//

sort(vec.begin(),vec.end(),less());

//公升序排序

37 sort(vec.begin(),vec.end(),greater());//

降序排序

38int wei = 0

;;39

for(vector::iterator it = vec.begin();it!=vec.end();it++)

42return0;

43 }

**中利用注釋進行了簡單的註解。

另外需要注意的一點是sort中的cmp函式與qsort中的cmp函式區別。

sort cmp 是bool型別的,意味著只有0,1兩個返回值,而qsort中還包括0的情況,所以qsort一般是a-b,而sort一般是a

C語言結構體和結構體排序

結構體 結構體是一種構造資料型別 構造資料型別包括 陣列型別 結構體型別 共用體型別 定義 把不同的資料組合成乙個整體。結構體的一般形式struct 結構體名稱 struct是關鍵字 不要忘記這裡的分號定義結構體的三種方法 第一種 先定義結構體型別,在定義變數名 struct student str...

C 結構體陣列排序

c 中的結構體排序,最常用到的應該就是對結構體的某乙個元素進行排序,其他元素與被排序元素關聯 比如這樣的結構體 typedef struct studentstudent score 3 代表三門成績,0 math,1 chinese,2 english typedef struct student...

結構體及結構體排序

1 定義的方法struct node 用strut定義乙個結構體,node是結構體的名字,可以自己瞎取。p 1000 這樣你就定義了乙個神奇的陣列!沒錯,它就是node型陣列!上面的 還在結構體的末尾定義了乙個該型的陣列,其實這個陣列不一定要有,而且也可以在主函式中定義,但是感覺上用的比較多,而且這...