结构体数组的排序


 按照结构体数组的某一项排序,那么一个结构体包含的其他元素仍保持不变。也就是说只能选择其中一项作为指标进行排序,相应的其他值对应不变化。

如下图,排序前数组为: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