我有一个动态数组。
int* array = new int[size]
我正在使用 Qt 库在 C++11 中开发应用程序。
我可以这样使用qSort
它吗QtAlgorithms.h
:
qSort(array, array+size-1)
我不确定,因为这些论点需要一种RandomAccessIterator
这是否意味着任何指针?
qSort()
自 Qt 5.2 起已被弃用。引用ChangeLog:
由于 STL 不再可用于构建和使用 Qt,QtAlgorithms 的许多部分不再有意义,因此已被弃用。
STL 中提供了替代品,并且通常具有更好的性能,但并非在所有情况下都立即与源代码兼容。例如,qLess 或 qSwap 的特化意味着从 qSort 直接移植到 std::sort 可能是不可能的,因为 std::sort 不使用它们中的任何一个;一种可能的解决方法是... [有关更多信息,请参阅链接]。
请注意,正如 ChangeLog 所提到的,在某些情况下,简单的查找/替换是不够的。
有关 和 速度差异的一些讨论std::sort()
,qSort()
请参见此处。
这些现在只是警告,但很可能是Qt 6 的错误。