zoukankan      html  css  js  c++  java
  • 关于sort函数的几种用法

    1.要使用sort函数只需用#include <algorithm> 即可使用,语法描述为:

    sort(begin,end),表示一个范围,例如:

    int _tmain(int argc, _TCHAR* argv[])
    {
     int a[20]={2,4,1,23,5,76,0,43,24,65},i;
     for(i=0;i<20;i++)
      cout<<a[i]<<endl;
     sort(a,a+20);
     for(i=0;i<20;i++)
     cout<<a[i]<<endl;
     return 0;
    }

    输出结果将是把数组a按升序排序。

    2.sort中增加一个参数,可升序可降序。

    1)自己编写compare函数:

    bool compare(int a,int b)
    {
          return a<b;   //升序排列,如果改为return a>b,则为降序

    }

    2)接着调用三个参数的sort:sort(begin,end,compare)就成了。对于list容器,这个方法也适用,把compare作为sort的参数就可以了,即:sort(compare).

    int _tmain(int argc, _TCHAR* argv[])
    {
         int a[20]={2,4,1,23,5,76,0,43,24,65},i;
         for(i=0;i<20;i++)
           cout<<a[i]<<endl;
         sort(a,a+20,compare);
         for(i=0;i<20;i++)
           cout<<a[i]<<endl;
         return 0;
    }

    3.标准库里已经有现成的了,就在functional里,include进来就行了。functional提供了一堆基于模板的比较函数对象。它们是(看名字就知道意思了):equal_to<Type>、not_equal_to<Type>、greater<Type>、greater_equal<Type>、less<Type>、less_equal<Type>。对于这个问题来说,greater和less就足够了,直接拿过来用:

    • 升序:sort(begin,end,less<data-type>());
    • 降序:sort(begin,end,greater<data-type>()).

    int _tmain(int argc, _TCHAR* argv[])
    {
          int a[20]={2,4,1,23,5,76,0,43,24,65},i;
          for(i=0;i<20;i++)
              cout<<a[i]<<endl;
          sort(a,a+20,greater<int>());
          for(i=0;i<20;i++)
              cout<<a[i]<<endl;
          return 0;
    }

    以上三种方式对于我目前的水平来说已足够,以后会更加深入的学习。

  • 相关阅读:
    写了一个html5音乐播放器
    跨站脚本攻击之反射型XSS漏洞
    org.hibernate.ObjectNotFoundException异常一则
    addEventListener第二个参数的handleEvent
    IE的fireEvent方法
    DexMongoDB索引优化工具
    javascript 位运算符
    javascript contains方法来判断元素包含关系
    将uglifyjs添加到鼠标右键菜单
    过滤XSS(跨站脚本攻击)的函数和防止svn版本库被浏览
  • 原文地址:https://www.cnblogs.com/zhoumin6012/p/9927100.html
Copyright © 2011-2022 走看看