【C++----12】C++的sort函数的使用,基本语法和普通排序,数组使用和string排序使用;

    xiaoxiao2025-03-27  14

    目录

    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; }

    最新回复(0)