当你发现两个数据相等并且自定义排序函数会在这时候返回结果为true,那你就要小心了,你的自定义排序函数写的有问题。有兴趣可以查看C++源码,欢迎讨论。

//问题代码
#include<bits/stdc++.h>
using namespace std;
int a[1000];
//自定义排序函数
bool cmp(int a,int b){
	return true;//比较不要写<=或者>=,求求了,STL里面没有写的那么严谨
}
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	sort(a,a+n,cmp);
	for(int i=0;i<n;i++){
		cout<<i<<" "<<a[i]<<endl;
	}
}

1 comments

  • 1