使用Qt qSort()在数组上调用qSort

时间:2017-06-20 18:52:14

标签: c++ qt c++11 qt5.8

我有一个动态数组。

int* array = new int[size]

我正在使用Qt库在C ++ 11中开发应用程序。

我可以这样使用qSort QtAlgorithms.h

qSort(array, array+size-1)

我不确定,因为参数需要一种RandomAccessIterator

这是否意味着任何指针?

1 个答案:

答案 0 :(得分:0)

qSort()自Qt 5.2起已被弃用。引用ChangeLog

对于STL,对于构建和使用Qt不再是可选的, QtAlgorithms的一部分不再有意义,因此已经 不推荐使用。

替换在STL中可用,并且通常有很多 更好的性能,但并非全部都立即与源兼容 案件。例如,qLess或qSwap的特殊化意味着 从qSort直接连接到std :: sort可能是不可能的,因为 std :: sort不使用其中任何一个;可能的解决方法是... [请参阅 链接以获取更多信息]。

请注意,正如ChangeLog所提到的,在某些情况下,琐碎的查找/替换是不够的。

有关std::sort()qSort()的速度差异的讨论,请参见here

这些现在只是警告,但将likely be errors与Qt 6一起使用。