结构体排序
2026-01-11 11:31:06
发布于:广东
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
#define ll long long
//结构体关键字 struct
//名字
//年龄
//身份号
struct A{ //声明了一个结构体
string name;//名字
int age;//年龄
string number;//身份号
};
bool cmp1(int a,int b){
return a<b;//返回一个比较,默认从小到大排序
}
bool cmp2(int a,int b){//cmp -->比较
return a>b;//返回一个比较,从大到小
}
bool cmp3(A a,A b){
return a.age<b.age;//返回比较,依照年龄大小,从小到大
}
bool cmp4(A a,A b){
return a.age>b.age;//返回比较,依照年龄大小,从大到小
}
int main(){
// int x;//定义一个名称为x的int类型
// cin>>x;
// A y; //--
// //如何访问结构体的成员
// y.name;//访问到名字
// y.age;//
// cin>>y.name;
// cout<<y.name;
//要求定义一个大小为10的int类型数组
//数组 int x;
int a[10];//定义了一个大小为10的int类型数组
//排序函数
// sort();//排序函数
sort(a+0,a+10);//功能排序a[0]~a[9];
a[0];//下标从0开始
a[9];//最后一个元素
sort(a+0,a+10,cmp1);//排序a[0]~a[9];//依据cmp1的规则
sort(a+0,a+10,cmp2);//排序a[0]~a[9];//依据cmp2的规则
A abc[10];//定义了一个大小为10的一个A结构体类型数组
abc[0];//结构体数组中第一个成员
abc[9];//结构体数组的最后一个成员
abc[0].name;//访问结构体中的成员变量
//sort(开始位置,结束位置+1,排序规则); 开始位置和结束位置确定排序范围
sort(abc+0,abc+10,cmp3);//排序abc[0]~abc[9];//依据cmp3的规则
sort(abc+0,abc+10,cmp4);//排序abc[0]~abc[9];//依据cmp4的规则
}
全部评论 1
。
2天前 来自 重庆
0











有帮助,赞一个