码迷,mamicode.com
首页 > 编程语言 > 详细

结构体的三种排序方式

时间:2020-03-06 12:45:04      阅读:73      评论:0      收藏:0      [点我收藏+]

标签:pre   namespace   out   c++   cout   for   amp   code   ==   

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 const int N = 1e5;
 6 
 7 struct node{
 8     int key;
 9     int value;
10     //方法一 重载小于运算符
11     bool operator < (const node &rhs) const{
12         return key < rhs.key || key == rhs.key && value > rhs.value;
13     } 
14 }st[N];
15 
16 //方法二 手写cmp 
17 bool cmp(const node &a, const node &b){
18     return a.key < b.key || a.key == b.key && a.value > b.value;
19 }
20 
21 //方法三 定义一个结构体,重载()运算符  让他类似于一个函数的调用 
22 struct cmp2{
23     
24     bool operator () (const node &a, const node &b) const{
25         return a.key < b.key || a.key == b.key && a.value > b.value;
26     }
27 };
28 
29 int main(){
30     
31     for(int i=1; i<=5; i++){
32         st[i].key = 1;
33         st[i].value = 5 - i;
34     }
35     for(int i=6; i<=10; i++){
36         st[i].key = i;
37         st[i].value = 10 - i;
38     }
39     //sort(st+1,st+1+10); 方法一 
40     //sort(st+1,st+1+10,cmp); 方法二 
41     //sort(st+1,st+1+10,cmp2()); 方法三 
42     for(int i=1; i<=10; i++){
43         cout << st[i].key << " " << st[i].value << endl;
44     }
45     return 0;
46     
47 }

 

结构体的三种排序方式

标签:pre   namespace   out   c++   cout   for   amp   code   ==   

原文地址:https://www.cnblogs.com/zhangqiling/p/12425697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!