方法一:结构体内重载
#include <iostream>
#include<stdio.h>
#include <string.h>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
const int maxn = 1000;
struct people{
char name[20];
int age;
int weight;
people(){}///默认构造函数一定要加!!!
people(char nam[], int ag, int we){
strcpy(name, nam);
age = ag;
weight = we;
}
bool operator<(const people&t){
return age < t.age;///小于号是升序输出
}
};
people p[maxn];
int main(){
int N;
char nam[20];
int ag;
int we;
scanf("%d", &N);
for(int i = 0; i < N; ++i)
scanf("%s%d%d", &p[i].name, &p[i].age, &p[i].weight);
sort(p, p+N);
printf("输出数据:\n");
for(int i = 0; i < N; ++i)
printf("%s %d %d\n", p[i].name, p[i].age, p[i].weight);
return 0;
}