qq_33555452 2016-02-23 15:14 采纳率: 100%
浏览 1956
已采纳

c++中 算法sort带 谓词的怎么回事

请大神详细解释一下这个带谓词的sort算法的使用与规则 c++中 算法sort带 谓词的怎么回事 大神求帮助

  • 写回答

3条回答

  • threenewbee 2016-02-23 15:24
    关注
     简单来说,就是用一个函数指针传一个自己写的比较函数,告诉sort你的排序规则。从而实现按照特定方式(比如结构体排序按照某个字段排序,或者升序降序排序,或者字符串排序按照ascii顺序还是按照长度)排序。
    
    比如
    int cmp(const void * a, const void * b)
    {
        return *(int *)a - *(int *)b;
    }
    main()
    {
        int arr[] = ...
            qsort(arr, n, sizeof(int), cmp);
    }
    这个程序按照升序排序
    如果
    int cmp(const void * a, const void * b)
    {
        return *(int *)b - *(int *)a;
    }
    就是按照降序排序
    如果
    int cmp(const void * a, const void * b)
    {
        int aa = abs(*(int *)a);
          int bb = abs(*(int *)b);
        return aa - bb;
    }
    就是按照绝对值排序
    
    可见,你只要定义不同的cmp函数,就可以按照你的愿望排序
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?