全AC代码
#include<iostream>
using namespace std;
#include<string>
#include<vector>
#include<math.h>
#include <algorithm>
struct student
{
int number;//学生编号
int year;
int mon;
int day;
string name = "";
};
bool cmp(student s1, student s2)
{
if (s1.year < s2.year)return true;
else if (s1.year > s2.year)return false;
else
{
if (s1.mon < s2.mon)return true;
else if (s1.mon > s2.mon)return false;
else
{
if (s1.day < s2.day)return true;
else if (s1.day > s2.day)return false;
else
{
if (s1.number > s2.number)return true;
else
return false;
}
}
}
}
student s[101];
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> s[i].name >> s[i].year >> s[i].mon >> s[i].day;
s[i].number = i;
}
sort(s, s + n, cmp);
for (int i = 0; i < n; i++)
{
cout << s[i].name << endl;
}
return 0;
}
对于大部分这种题目(对学生生日排序,理化生分数排序,员工工资排序)都可以用这种模板来写