排序函数:sort 在头文件algorithm中
用法:
一:两参数:sort(数组名,数组名+元素个数) //此时默认为从小到大排序
例如:
#include<iostream>
#include<algorithm> /// 头 文 件 呐!!!!
using namespace std;
int main()
{
int a[6]={6,2,84,13,4,56};
sort(a,a+6);
for(int i=0;i<6;i++)
cout<<a[i]<<' ';
return 0;
}
三参数:sort(数组名,数组名+元素个数,函数)
函数用于调整排序方式
例如:
#include<iostream>
#include<algorithm> /// 头 文 件 呐!!!!
using namespace std;
bool compare(int a,int b) //排序方式为从大到小
{
return a>b;
}
int main()
{
int a[6]={6,2,84,13,4,56};
sort(a,a+6,compare);
for(int i=0;i<6;i++)
cout<<a[i]<<' ';
return 0;
}
sort除了可以对数组排序外,还可以对类和结构体的对象数组排序:
#include<iostream>
#include<algorithm>
using namespace std;
class wj{
public:
int wl;
int zl;
void input()
{
cin>>wl;
}
};
bool compare(wj a,wj b)
{
return a.wl>b.wl;
}
int main()
{
wj name[5];
for(int i=0;i<5;i++)
name[i].input();
sort(name,name+5,compare);
for(int i=0;i<5;i++)
cout<<name[i].wl<<' ';
return 0;
}
还可以对sort设置多个排序条件,只需将compare函数修改:
bool compare(wj a,wj b)
{
if(a.wl!=b.wl) return a.wl>b.wl;
else return a.zl>b.zl;
}
这样,如果两个对象的wl相等,就会根据他们的zl大小排序