有好几次,我在遇到排序的时候,会遇见题目说,如果两个数据相等,就先输出最先输入的那个,然后看了题解,再看分析。发现sort其实是有两种的,简单的sort,还有就是stable_sort两种,而后者,是可以实现上述功能的,但是在结构体中,用的时候,有些测试点过不去,因此在写题目的时候尽量手写比较好,写法如下:
struct p{
int f;//数据
int num;//输入序号,表示先后
}q[5];
int cmp(p x,p y)
{
if(x.f==y.f) return x.num<y.num;
else return x.f<y.f;
}
sort(a,a+n,cmp);
即可。