我想知道为什么有两种完全不同的方法来指定qsort()
{C 版本} 与std::sort()
.
qsort
需要如下比较函数:我不知道为什么它需要三种返回值-1,0,+1。
int comp(int *x, int *y){
return *x - *y;
}
而 的比较函数std::sort()
,对我来说看起来更一致,因为它是根据函数编写的,遵循不变量。即如果x小于y函数返回true,x相对于y在正确的位置
bool comp(int x, int y){
return x < y;
}
为什么我们需要三个值 -1,0,+1 当返回一个 bool (或具有两个值 0 、 1 的 int )更简单和干净?