class MyClass { };
function doSomethingWithClass(klass: Class<MyClass>): void {
}
doSomethingWithClass(MyClass)
库函数qsort采用比较函数来比较整数。谷歌搜索建议如下
c
这存在有符号整数溢出(或下溢)的问题,在int compare (const void *a, const void *b)
{
const int *ia = (const int *)a; // casting pointer types
const int *ib = (const int *)b;
return *ia - *ib;
}
中未定义。直截了当的解决方案非常冗长,可能不是最好的。
c
其他选项是使用更长的有符号整数,如int compare (const void *a, const void *b) {
const int *ia = (const int *)a; // casting pointer types
const int *ib = (const int *)b;
if(*ia > *ib) {
return 1;
} else if (*ia == *ib) {
return 0;
}
return -1;
}
,但问题仍然存在,我们必须对long long int
进行排序。
什么是最佳选择,因为排序整数是一件非常常见的事情?