当前位置:   article > 正文

c++ 排序二_多个属性 实现排序 c++

多个属性 实现排序 c++

问题
对每个对象属性一进行比较,若属性一相同比较属性二…
依旧利用sort函数

先写结构体:
每个对象有年龄age和分数score两个属性

 struct con{
  int age;
  int score;
 }buf[100];
  • 1
  • 2
  • 3

写cmp比较函数:
先按age升序排序,若age相同,则按score升序排序

bool cmp2(con a,con b){
 if(a.age!=b.age)
  return a.age<b.age;//升序排列 
 else
  return a.score<b.score; 
}
  • 1
  • 2
  • 3
  • 4
  • 5

主函数如下:

 cin>>n;//输入待排序的数字个数 
 for(int i=0;i<n;i++){
  cin>>buf[i].age>>buf[i].score;//输入待排序的n组数 
 } 
 sort(buf,buf+n,cmp2);
 for(int i=0;i<n;i++)
  cout<<buf[i].age<<"  "<<buf[i].score<<endl;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行结果如图:

在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号