按学生成绩进行升序排列

有两种方法,一是重载Student类中的“<”运算符。二是自己定义一个普通的全局比较函数。

一、重载Student类中的“<”运算符

#include
#include
#include
#include
using namespace std;
class Student
{
public:
	int ID;
	string name;
	int grade;
	Student(int ID,string name,int grade)
	{
		this->ID = ID; this->name = name; this->grade = grade;
	}
	bool operator<(const Student &s) const
	{
		return grade v;
	v.push_back(s1); v.push_back(s2);
	v.push_back(s3); v.push_back(s4);
	sort(v.begin(),v.end());
	//也可以使用
	//sort(v.begin(),v.end(),less());
	cout<<"升序排序结果:"<::iterator iter=v.begin();
	while(iter!=v.end())
	{
		cout<ID<<"\t"<name<<"\t"<grade<

输出结果如下所示:

按学生成绩进行升序排列_第1张图片


二、使用普通的全局比较函数

#include
#include
#include
#include
using namespace std;
class Student
{
public:
	int ID;
	string name;
	int grade;
	Student(int ID,string name,int grade)
	{
		this->ID = ID; this->name = name; this->grade = grade;
	}
};
//普通的全局比较函数
bool mygreater(Student &s1, Student &s2)
{
	return s1.grade v;
	v.push_back(s1); v.push_back(s2);
	v.push_back(s3); v.push_back(s4);
	sort(v.begin(),v.end(),mygreater); //更改sort函数,去掉Student类中的bool operator<(const Student &s)
	cout<<"升序排序结果:"<::iterator iter=v.begin();
	while(iter!=v.end())
	{
		cout<ID<<"\t"<name<<"\t"<grade<

输出结果与上图一致。

你可能感兴趣的:(C++)