C++ sort()和is_sorted()的升序降序和自定义排序
我们分别给数组和向量两个名称:
int a[]={1,2,3,4,5};
vector<int> v;
sort()
- 头文件:
#include<algorithm>;
- 作用:将数组或向量进行排序;
- 默认排序方式:升序;
- 使用格式(数组和vector):
sort(a,a+5);
sort(v.begin(),v.end());//默认升序
sort(a,a+5,greater<int>());
sort(v.begin(),v.end(),greater<int>());//降序
bool cmp(const int & a, const int & b){
return a%10>b%10; //这里我们自定义为a的个位数比b大,则a在b前
} //这里的返回值的含义是a必须在b前面返回true,否则返回false;
sort(a,a+5,cmp);
sort(v.begin(),v.end(),cmp);//自定义排序规则
is_sorted()
- 头文件:
#include<algorithm>
; - 作用:检查数组或者向量是否被排序好;
- 默认检查方式:升序;
- 特殊要求:需要C++11的特性;
- 返回值:
true
或false
; - 使用格式:
is_sorted(a,a+5);
is_sorted(v.begin(),v.end());//默认升序检查
is_sorted(a,a+5,greater<int>());
is_sorted(v.begin(),v.end(),greater<int>());//降序检查
bool cmp(const int & a, const int & b){
return a%10>b%10;
}
is_sorted(a,a+5,cmp);
is_sorted(v.begin(),v.end(),cmp);//自定义排序规则