我浏览了大多数有关qsort与C ++中sort之间比较的问题。我想问一下,是否有任何情况你更喜欢qsort而不是排序?
答案 0 :(得分:5)
可能没有,std :: sort是类型安全的,而且它可以内联比较器函数。 qsort唯一独特的优点是它可以在普通的C中使用。
答案 1 :(得分:1)
如果您的数据大小是动态的但是全局的,那么为qsort编写排序比排序更容易。
如果您的代码已经与qsort一起使用,则重写它可能需要工作。
我没有找到另一个原因。
答案 2 :(得分:1)
qsort要求比较函数以整数形式返回负数,零或正数,具体取决于排序。 Sort需要一个等效于<的布尔值。操作
因此,如果比较浮点字段或结构的非平凡要求,qsort()可能要求效率稍低且写入比较函数更难。此外,qsort没有采用上下文指针,它不可能以依赖于上下文的方式排序(你很少需要的东西),而不使用全局。 sort可以使用带有捕获列表的lambda。 sort()更容易使用并且效率更高,因此最好,除非向后兼容C是一个问题。