結構體數組的排序


 按照結構體數組的某一項排序,那么一個結構體包含的其他元素仍保持不變。也就是說只能選擇其中一項作為指標進行排序,相應的其他值對應不變化。

如下圖,排序前數組為:1,3;8,4;5,2;

排序后仍然是它們的組合,只是順序變了而已。

 

結果如下:

代碼:

 1 #include<algorithm>
 2 #include<iostream>
 3 using namespace std;  4 
 5 const int M = 3;  6 
 7 struct two {  8     double w;  9     double v; 10 }ss[M]; 11 bool cmp(two a,two b) 12 { 13     return a.v > b.v;   //按照從大到小排序
14 } 15 
16 int main() 17 { 18     int s, e; 19     cout << "輸入結構體數組的數值,以空格分開: " << endl; 20     for (int i = 0; i < 3; ++i) 21  { 22         cin >> s >> e; 23         ss[i].w = s; 24         ss[i].v = e; 25         //cout << ss[i].w << " " << ss[i].v << endl;
26  } 27     sort(ss, ss + 2, cmp); 28 
29     cout << "排序后如下:" << endl; 30     for (int i = 0; i < 3; ++i) 31  { 32         cout << ss[i].w << " " << ss[i].v << endl; 33  } 34 
35  cin.ignore(); 36  cin.ignore(); 37  cin.ignore(); 38 
39     
40     return 0; 41 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM