需要的头文件:
#include<algorithm>
代码很简单,就一行:
sort(a+1,a+n+1,cmp);
a表示要排序的数组,含n个元素,而cmp是判定条件。
比如说:
bool cmp(int i,int j)
{
return i<j;
}
就是从小到大排序,反之则return i>j;
当然这只是基于a是int类型的数组下的cmp函数,假如想捆绑多个数组(比如说下标label[]),需要用到结构体。
例如:
#include<algorithm>
struct newdata
{
int w,label;
};
newdata a[10];
bool cmp(newdata i,newdata j) //注意类型变了
{
return i.w<j.w;
}
int main()
{
sort(a+1,a+n+1,cmp);
}
这样子排序的关键字是a[].w,但是交换时还是会把整个结构体交换过去。
可以自己尝试一下。