std :: sort行为与int相等

Dog*_*Dog 9 c++ sorting std

当std :: sort与相同的int一起使用时,它会保持相同的顺序还是只做一些不可预测的东西?

vit*_*aut 16

std::sort不保留等效元素的顺序std::stable_sort.但是,如果是ints,除非你使用一些非平凡的排序,否则你不会注意到差异,如下例所示:

struct half_less
{
    bool operator()(int a, int b) const { return (a / 2) < (b / 2); }
};

std::sort(begin, end, half_less());
Run Code Online (Sandbox Code Playgroud)


fra*_*ast 6

@vitaut是对的.我只想补充一点,你不会注意到是否改变了相等整数的顺序.这只有在您对具有识别属性的值进行排序时才有意义.例如,如果存储指向整数的指针并按整数值排序.