zoukankan      html  css  js  c++  java
  • 转载:c++ sort用法

    sort函数使用模板:

    sort包含在头文件algorithm中

    sort(start,end,排序方法)

    1.在没有排序方法时是默认从小到大的排列,例

    #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]<<endl;
    
    sort(a,a+10);
    
     for(int i=0;i<10;i++)
    
     cout<<a[i]<<endl;
    
     return 0;
    
    }

    下面来介绍一下那个排序方法也就是比较函数complare

     1 #include<iostream>
     2 
     3 #include<algorithm>
     4 
     5 using namespace std;
     6 
     7 bool complare(int a,int b)
     8 
     9 {
    10 
    11  return a>b;
    12 
    13 }
    14 
    15 int main()
    16 
    17 {
    18 
    19  int a[10]={9,6,3,8,5,2,7,4,1,0};
    20 
    21  for(int i=0;i<10;i++)
    22 
    23  cout<<a[i]<<endl;
    24 
    25  sort(a,a+10,complare);//在这里就不需要对complare函数传入参数了,//这是规则
    26 
    27  for(int i=0;i<10;i++)
    28 
    29  cout<<a[i]<<endl;
    30 
    31  return 0;
    32 
    33 }

    例三:

    通过上面例一、二的方法虽然实现了从大到小和从大到小的排序,这样做还是有点麻烦,因为还需要自己编写告诉程序执行何种排序的原则的函数,c++标准库强大的功能完全可以解决这种麻烦。

    Sortt函数的第三个参数可以用这样的语句告诉程序你所采用的排序原则

    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]<<endl;
    
    sort(a,a+10,less<int>());
    
     for(int i=0;i<10;i++)
    
     cout<<a[i]<<endl;
    
     return 0;
    
    }
    #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]<<endl;
    
     sort(a,a+10,greater<int>());
    
     for(int i=0;i<10;i++)
    
     cout<<a[i]<<endl;
    
     return 0;
    
    }

    例四:利用sort函数还可以实现对字符的排序,排序方法大同小异,下面就把程序范例展示一下

    #include<iostream>
    
    #include<algorithm>
    
    using namespace std;
    
    int main()
    
    {
    
     char a[11]="asdfghjklk";
    
     for(int i=0;i<10;i++)
    
     cout<<a[i]<<endl;
    
     sort(a,a+10,greater<char>());
    
     for(int i=0;i<10;i++)
    
     cout<<a[i]<<endl;
    
     return 0;
    
    }
  • 相关阅读:
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    Apache Spark RDD(Resilient Distributed Datasets)论文
    Apache Spark 2.2.0 中文文档
    Apache Spark 2.2.0 中文文档
    【机器学习实战】第10章 K-Means(K-均值)聚类算法
    [译]flexbox全揭秘
  • 原文地址:https://www.cnblogs.com/czwangzheng/p/4593092.html
Copyright © 2011-2022 走看看