7-39 找出总分最高的学生 (15分)
利用运算符重载给结构体排序C++
如题
输入输出数据非常整齐,我就考虑了一下用结构体表示
typedef struct info
{
char number[6];
char name[12];
int g1;
int g2;
int g3;
int sum;
} info;
然后是找到sum的最大值,想到max_element(iter first,iter last)
,以sum
值大小排序,重载<
运算符
typedef struct info
{
char number[6];
char name[12];
int g1;
int g2;
int g3;
int sum;
bool operator<(struct info a){
return (*this).sum < a.sum;
}
} info;
重点:max_element()&min_element()都是以<运算符为基础运算的,所以我们重载<
以结构体内sum
为操作数。