zoukankan      html  css  js  c++  java
  • 关于stable_sort()和sort()的区别

    你发现有sort和stable_sort,还有 partition 和stable_partition, 感到奇怪吧。其中的区别是,带有stable的函数可保证相等元素的原本相对次序在排序后保持不变。或许你会问,既然相等,你还管他相对位置呢,也分不清 楚谁是谁了?这里需要弄清楚一个问题,这里的相等,是指你提供的函数表示两个元素相等,并不一定是一摸一样的元素。

    例如,如果你写一个比较函数:

    bool less_len(const string &str1, const string &str2)
    {
            return str1.length() < str2.length();
    }

    此时,"apples" 和 "winter" 就是相等的,如果在"apples" 出现在"winter"前面,用带stable的函数排序后,他们的次序一定不变,如果你使用的是不带"stable"的函数排序,那么排序完 后,"winter"有可能在"apples"的前面。

  • 相关阅读:
    Go 映射 (map)
    Go 字节 (byte) & 文字符号 (rune)
    Go 数组(array) & 切片(slice)
    Go 字符串 (string)
    Go 变量(var) & 常量(const)
    Go 循环 (for)
    Go 函数
    Go package: strings
    Linux crontab (定时任务)
    Python gc
  • 原文地址:https://www.cnblogs.com/zhoumin6012/p/9930633.html
Copyright © 2011-2022 走看看