使用std::sort时,标准是否保证相等元素的顺序不会改变(哦,忘了这个术语),还是我需要考虑其他解决方案来实现这个目标?
答案是没有保证。如果您需要确保相等元素的顺序不变,则可以使用稳定排序算法,例如std::stable_sort。
std::sort
不保证稳定(你试图想到的术语)。正如你所猜测的,std::stable_sort
保证是稳定的。std::stable_sort
还提供了最坏情况下复杂度的保证,而std::sort
则没有。然而,std::sort
通常平均速度更快。
如果您需要保证排序稳定性,请使用 std::stable_sort。
不,它明确地不保证这一点。如果你需要维护相对顺序,请使用stable_sort。
sort的文档包括了对等元素的参考信息