在sort函数比较的时候,它会严格弱排序,比较 a是否 >= b,然后两个对象会进行交换,重新比较一遍,相当于这次比较的是 b是否>= a
a >= b ? 满足: true
b <= a ? 满足: true
这样就出现了一个冲突,不管是a >= b还是b >= a都会返回true的情况,我们都知道sort中只要comp返回true,两个元素就会交换一次,因此comp返回两次true,会对两个元素交换两次,相当于没有交换,因此就会出现无效的比较器的情况。
正确的交换方式: 当 == 的时候,他们不用交换就可以了,此时如果两个元素相等,则都返回false,因此两次false,在sort中就不用交换,因此达到了等于时不交换的目标。