// 自定义排序
#include <iostream>
#include <set>

using namespace std;

// 自定义规则
template <typename T>
class MySort
{
public:
    bool operator()(const T &a, const T &b)
    {
        return a > b; // 从小到大排序
    }
};

class Student
{
public:
    string name;
    int age;
    float score;

public:
    Student(const string &name, int age, float score)
    {
        this->name = name;
        this->age = age;
        this->score = score;
    }
};

class MyStudentByAgeSort
{
public:
    bool operator()(const Student &s1, const Student &s2)
    {
        return s1.age > s2.age;
    }
};

class MyStudentByScoreSort
{
public:
    bool operator()(const Student &s1, const Student &s2)
    {
        return s1.score > s2.score;
    }
};

int main()
{
    Student[] *stus = new Student[3]{Student("张三", 18, 100), Student("李四", 20, 90), Student("王五", 19, 95)};
    set<Student, MyStudentByAgeSort> s2;
    s2............................

        return 0;
}
