c++中sort函数有两种形式
- sort (first, last) //两个参数
- sort (first, last, cmp) //三个参数
下面先说第一种
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[4] = {3,9,7,6};
int i = 0,j = 0;
while(i < 4){
cout << a[i] << " ";
i++;
}
cout << endl;
sort(a, a+4); /*对地址a到地址a+4进行从小到大的排序*/
while(j < 4){
cout << a[j] << " ";
j++;
}
return 0;
}
这里我们用sort函数对数组a进行了从小到大的排序
下面是控制台运行结果
再说第二种(以结构体为例)
#include<iostream>
#include<algorithm>
using namespace std;
struct X{
int a;
char b[10];
};
bool cmp(X xx,X yy){
return xx.a > yy.a; /*若是 < 则是从小小到大排序*/
} /*改变条件使其从大到小排序*/
int main(){
int i;
X xx[5];
for(i = 0;i < 5;i++){
cin >> xx[i].a >> xx[i].b;
}
cout << endl;
sort(xx, xx+5, cmp);
for(i = 0;i < 5;i++){
cout << xx[i].a << " " << xx[i].b << endl;
}
return 0;
}
这里我们用第三个参数cmp使sort对结构体按int型数据a进行了从大到小的排序
下面是控制台运行结果