当std :: sort与相同的int一起使用时,它会保持相同的顺序或只做一些不可预测的事情,这是什么行为?
答案 0 :(得分:16)
std::sort
不保留等效元素的顺序,std::stable_sort
。但是,在int
s的情况下,您将不会注意到差异,除非您使用一些非平凡的排序,如下例所示:
struct half_less
{
bool operator()(int a, int b) const { return (a / 2) < (b / 2); }
};
std::sort(begin, end, half_less());
答案 1 :(得分:6)
@vitaut是对的。我只想补充一点,你不会注意到是否改变了相等整数的顺序。这只有在您对具有识别属性的值进行排序时才有意义。例如,如果存储指向整数的指针并按整数值排序。