目录
sort使用:
1.基本语法:
2.默认从小到大排序:
3.自定义排列函数,从大到小排序:
4.不定义排序函数,使用C++比较函数:
2.不同类型的sort()使用:
1.数组使用:
2.string排序
sort使用:
1.基本语法:
需要使用头文件 #include<algorithm>和using namespace std; 语法:sort(begin,end,cmp),cmp参数可以省略,默认按升序排序。begin表示要排序元素的首地址,end表示要排序元素的结束地址;
2.默认从小到大排序:
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[10]={3,4,6,7,9,2,1,0,5,8}; //数组数值随机无序
for (int i = 0; i < 10; i++)
cout << a[i]<<" ";
cout << endl;
sort(a,a+10); //
for (int i = 0; i < 10; i++)
cout << a[i] << " ";
return 0;
}
运行后结果:可知,默认结果下是从小到大排序;
3.自定义排列函数,从大到小排序:
#include<iostream>
#include<algorithm>
using namespace std;
//自定义排序函数
bool cmp(int a, int b) {
return a > b;//从大到小排序,从小到大排序为a<b
}
int main(){
int a[10]={3,4,6,7,9,2,1,0,5,8}; //数组数值随机无序
for (int i = 0; i < 10; i++)
cout << a[i]<<" ";
cout << endl;
sort(a,a+10,cmp); //
for (int i = 0; i < 10; i++)
cout << a[i] << " ";
return 0;
}
结果: 从大到小排序;
4.不定义排序函数,使用C++比较函数:
从小到大排序,比较函数设置为:less<数据类型>() 从大到小排序,比较函数设置为:greater<数据类型>()
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[10]={9,6,3,8,5,2,7,4,1,0};
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
sort(a,a+10,greater<int>());//从大到小排序,从小到大则为less<int>()
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
system("pause");
return 0;
结果:
2.不同类型的sort()使用:
1.数组使用:
int cmp(int a,int b) {
return a>b;//表示由大到小排列
int main(){
int a[7]={2,4,6,3,1,4,7};
sort(a,a+7);//默认升序排序,输出1,2,3,4,6,7
for(int i=0;i<7;i++)
cout<<a[i]<<' ';
sort(a,a+7,cmp);//指定降序排序,输出7,6,4,3,2,1
for(int i=0;i<7;i++)
cout<<a[i]<<' ';
return 0; }
2.string排序
int main(){
string str="azxcvbnmklp";
sort(str.begin(),str.end());//得到字符串 “abcklmnpvxz"
cout<<str;
cout << endl;
return 0;
}