问题遇到的现象和发生背景 :结构体排序+sort()
用代码块功能插入代码,请勿粘贴截图
C++代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct Student {
char name[11];
int solve;
int time;
}p[10000];
bool cmp(const Student& a, const Student& b)
{
if (a.solve != b.solve)
{
if (a.solve > b.solve)
return true;
else
return false;
}
else if (a.time != b.time)
return a.time < b.time;
else
return (strcmp(a.name, b.name) < 0);
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
cin>>p[i].name>>p[i].solve>>p[i].time;
sort(p,p+n,cmp);
for(int i=0;i<n;i++)
cout<<p[i].name;
return 0;
}
请问这个cmp是怎么进行排序的?(排序过程)能不能给个详细的解释?我之前在csdn上搜的几个代码都看不懂那里面的解释QWQ.
谢谢了!