@[qq1508020550](/user/334389)
①STL 要求排序关系满足[严格弱序](https://blog.csdn.net/River_Lethe/article/details/78618788) ,不可以出现两者相等返回真的情况,因为这会导致 `True==cmp(a,b)==cmp(b,a)`,在 STL 的理解之下是 `a<b` 且 `b<a`,没给你 RE 掉已经非常仁慈了。
②`std::sort`不是你想象中的那种插入排序或者冒泡排序,不一定邻项交换,至于相等保持原顺序,详见[排序的稳定性](https://zhuanlan.zhihu.com/p/116046849)。`std::sort` 提供的是一个不稳定的排序,而 `std::stable_sort` 才提供了一个稳定的排序。
③为了适应更多情况,请写代码的时候不必考虑使用 `std::stable_sort` 还是 `std::sort`,直接将相等时使用的顺序写到结构体中,或者用结构体的元素推出相等时的顺序,然后在 `cmp` 中写明相等时的大小排序。
by Terrible @ 2024-04-10 13:19:20
至于③,你可以看看[这篇题解](https://www.luogu.com.cn/article/3m6mv85w)。
by Terrible @ 2024-04-10 13:22:02
@[Terrible](/user/195942) 谢谢大佬
by qq1508020550 @ 2024-04-10 21:43:02
s 你个sb(傻逼)
by ss2315zjx @ 2024-04-13 15:22:36