C语言(CED)如何用sort函数根据结构体里的某一属性进行排序
生活随笔
收集整理的這篇文章主要介紹了
C语言(CED)如何用sort函数根据结构体里的某一属性进行排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419? ? ? ?
前幾天在編寫代碼的時候,突然要根據結構體的屬性進行從小到大的排序,這即是我寫這篇文章的導火索。
正如大家所知道的那樣,我們在排序時通常會進行sort(a,a+n):a為數組名稱,n為數組長度。這樣來的快捷方便,但是,在我看來,要適當的對排序算法進行復習。
? ? ? ? 那么如何根據結構體的某一屬性進行排序呢?請看下面這段代碼:
struct home {int s;//定義起點int e;//定義終點int num;//定義長度int p=0;//做一個標記 };若在整個程序中,想根據home結構體的e屬性,即終點進行從小到大排序,則可以使用bool函數進行配合,例如:
bool cmp(home f,home d) {return f.e < d.e;//選擇起點從小到大排序 }在bool函數中,“<”代表依據某一個值,從小到大進行排序。具體在排序函數中應該這樣進行:
sort(a, a + n, cmp);//根據末尾節點,對種樹區間進行排序由此達到依據結構體中某一特定屬性進行排序的目的。
PS:如果僅想對數組下表1以后的元素進行排序,則可以這樣調用函數sort(a+1,n,cmp)
?
?
?
總結
以上是生活随笔為你收集整理的C语言(CED)如何用sort函数根据结构体里的某一属性进行排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言(CED)与long long相关
- 下一篇: HashMap 源码阅读