这是本蒟蒻的第一篇文章,可能有一些不足,请多多包容,谢谢!
众所周知,STL库是伟大的
那么他当然有排序功能
sort就是STL库中的一种库函数,他可以将一个数组从小道大(或从大到小)排序
而且他十分的简单,不像手打排序一样复杂
那么这就是他的使用方法:
sort(a, a + n);
没错,就只有这么一行
只不过从小到大时要写一个cmp函数,但代码复杂度比手打低多了
注意!
这个库函数是要使用头文件的(废话)
当然是大部分STL函数所用的头文件:
#include<algorithm>
然后就可以用了
举个例子:
#include<cstdio>
#include<algorithm>
using namespace std;
int a[105]; //定义a数组
int n;
int main(){
scanf("%d",&n);
for(int i = 0;i < n;i++){
scanf("%d",&a[i]); //输入a[i]
}
sort(a, a + n); //使用sort排序,从下标0到n,从小到大排序
for(int i = 0;i < n;i++){
printf("%d ",a[i]); //输出
}
return 0;
}
那么看一下效果:
很好的把数组从小到大排序了
那么如何从大到小呢
加一个cmp函数
bool cmp(int x,int y){
return x < y;
}
完美
其实sort还可以结构体排序,
就是你的cmp函数
返回1交换,返回0不换
那么你就可以写结构体排序了
cmp(xx x,xx y){ //xx表示你的结构体名称
if(xx.x ? xx.x) return 1; //?表示>或<,满足这个条件就交换
else return 0; //否则不交换
}
这就是结构体排序
谢谢你看完了蒟蒻的文章