sort 函数有两种用法,其语法格式分别为:
void sort (RandomAccessIterator first, RandomAccessIterator last);
其中,first 和 last 都为随机访问迭代器,它们的组合 [first, last) 用来指定要排序的目标区域;
sort(arr.begin(),arr.end());
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
在第二种格式中,comp 可以是 C++ STL 标准库提供的排序规则(比如 std::greater<T>),也可以是自定义的排序规则
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int arr[1] = {1,5,9,7,3,8,0,4,6,2};
sort(arr,arr+10,greater<int>());//默认逆序
for(int i=0;i<10;i++){
cout<<arr[i]<<" ";
}//输出结果:9 8 7 6 5 4 3 2 1 0
return 0;
}
自定义的排序规则
bool cmp(int x,int y){
return x < y ;
}
运行结果
#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int x,int y){
return x < y ;
}
int main(){
int arr[10] = {1,5,9,7,3,8,0,4,6,2};
sort(arr,arr+10,cmp);//默认逆序
for(int i=0;i<10;i++){
cout<<arr[i]<<" ";
}//输出结果:0 1 2 3 4 5 6 7 8 9
return 0;
}
因为自定义的cmp排序规则,输出为顺序
自定义规则也可以用于结构体排序(例如学生信息系统用学生的总分或者其中一科成绩进行排序)