赞
踩
问题
对每个对象属性一进行比较,若属性一相同比较属性二…
依旧利用sort函数
先写结构体:
每个对象有年龄age和分数score两个属性
struct con{
int age;
int score;
}buf[100];
写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;
}
主函数如下:
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;
运行结果如图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。