结构体数组的排序

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

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

 

转载于:https://www.cnblogs.com/skylover/p/7357048.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值