问题
对每个对象属性一进行比较,若属性一相同比较属性二…
依旧利用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;
运行结果如图:

本文介绍了一个使用C++实现的结构体排序示例,通过定义包含年龄和分数属性的结构体,并利用自定义比较函数cmp2,实现了先按年龄升序排序,年龄相同时再按分数升序排序的功能。

被折叠的 条评论
为什么被折叠?



