结构体数组的排序

Posted Dufy >>> Open Mind, Free Hear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构体数组的排序相关的知识,希望对你有一定的参考价值。

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

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

 

以上是关于结构体数组的排序的主要内容,如果未能解决你的问题,请参考以下文章

结构体数组排序问题

C语言结构体数组排序

用lambda表达式按照结构体中的一个字段来排序一个结构体数组

求教一个问题,如何用sort对结构体数组排序

结构体数组定义的排序

sort函数能对结构体进行排序吗?