我有一个动态数组。
int* array = new int[size]
我正在使用Qt库在C++11中开发一个应用程序。
我可以这样使用QtAlgorithms.h中的qSort吗:
qSort(array, array+size-1)
我不确定,因为参数需要一种RandomAccessIterator类型
这是否意味着任何指针?
发布于 2020-03-06 02:00:39
从Qt 5.2开始,qSort()就被弃用了。引用自ChangeLog
对于构建和使用Qt,带有STL的
不再是可选的,QtAlgorithms的许多部分不再有意义,因此已被弃用。
替代方案在STL中可用,通常具有更好的性能,但并不是在所有情况下都能立即与源代码兼容。例如,qLess或qSwap的专门化意味着从qSort直接移植到std::sort可能是不可能的,因为std::sort不使用它们中的任何一个;一种可能的解决办法是...有关更多信息,请参阅链接。
请注意,正如ChangeLog所提到的,在某些情况下,简单的查找/替换是不够的。
有关std::sort()和qSort()速度差异的讨论,请参阅here。
这些只是现在的警告,但将与Qt 6 likely be errors。
https://stackoverflow.com/questions/44660925
复制相似问题