**
sort()
**
使用这个函数,需要引入头文件:includue< algorithm >
sort函数对[first, last)区间的函数进行排序,查看源码可知使用的是快速排序法。
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
第三个参数comp可不写,不写第三个参数的话默认是升序排列。
如果想要降序排列:
第一种方法是sort之后再使用reverse。
第二种方法是将 greater() 添加到第三个参数中,注意greater函数是在funtional头文件中的,如果你要比较的对象是int,则尖括号中写int,如果不是则写你需要排序的元素的类型。
第三种方法则是自己写比较函数,特别是当你排序的元素是结构体或类的对象。
#include<iostream>
#include<algorithm>
using namespace std;
main()
{
//sort函数第三个参数采用默认从小到大
int a[]={45,12,34,77,90,11,2,4,5,55};
sort(a,a+10);
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
}
如果想 sort 来降序,可重写 sort:
bool compare(int a,int b)
{
return a< b; //升序排列,如果改为return a>b,则为降序
}
int a[20]={2,4,1,23,5,76,0,43,24,65},i;
for(i=0;i<20;i++)
cout<< a[i]<< endl;
sort(a,a+20,compare);