P5740 【深基7.例9】最厉害的学生
1.题目介绍
【深基7.例9】最厉害的学生
题目描述
现有
输入格式
第一行输入一个正整数
第二行开始,往下
输出格式
输出最厉害的学生。
样例 #1
样例输入 #1
3
senpai 114 51 4
lxl 114 10 23
fafa 51 42 60
样例输出 #1
senpai 114 51 4
提示
数据保证,
2.题解
2.1 类class
思路
这里主要是学习类创建相关的知识
- bool operator>(const Student& other) const {}
1.1 这是一个运算符重载函数,典型格式 Type operator(运算符)()....
1.2 这里的const表明在这个函数中不会修改成员变量,如有修改,报错
2.这里的构造函数采用了C++11引入的初始化列表的方法来简化代码 格式为:...(): 初始化对象(初始化值),...,... {}
3.自己构造类似Java中的to_string函数,使用'+'运算符时,允许字符串,字符间使用'+'相连,不能直接使用到其他类型上,无法自动类型转换!!!
这里也可以使用输出流ostringstream的方法记录。
4.const的方法不可以调用非const的方法,这里在>运算符的重载函数调用了sum函数,sum函数必须是const的,否则会报错
5.使用构造函数构造的对象存储在栈上,方法结束自动释放;但是使用new或者malloc创建的对象必须自己手动释放!!!
代码
#include<bits/stdc++.h>
using namespace std;
class Student{
public:
// Student(string name, int score_Ch, int score_Math, int score_En){
// this->name = name;
// this->score_Ch = score_Ch;
// this->score_En = score_En;
// this->score_Math = score_Math;
// }
Student(string name, int score_Ch, int score_Math, int score_En)
: name(name), score_Ch(score_Ch), score_En(score_En), score_Math(score_Math) {}
string to_string() const{
// return name + ' ' + std::to_string(score_Ch) + ' ' + std::to_string(score_Math) + ' ' + std::to_string(score_En); //这里必须要用std::表明作用域范围,不然会引起冲突
//使用字符串输出流来存储也是可以的
ostringstream oss;
oss << name << ' ' << score_Ch << ' ' << score_Math << ' ' << score_En;
return oss.str(); //得到字符串形式
}
int sum()const{
return score_Ch + score_Math + score_En;
}
bool operator>(const Student& other) const{ //表示这个成员函数不会修改类的成员变量
return sum() > other.sum(); //const函数不能调用非const函数,所以sum也要加上const
}
private:
string name;
int score_Ch, score_Math, score_En;
};
int main(){
int n;
cin >> n;
Student sMax("",-1,-1,-1); //避免最高分就是零分,导致错误
for (int i = 0; i < n; i++){
string name;
int sc, sm, se;
cin >> name >> sc >> sm >> se;
Student stu(name, sc, sm, se);
if(stu > sMax)
sMax = stu;
}
cout << sMax.to_string();
}
2.2 结构体struct
思路
代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了