0

我有一个动态数组。

int* array = new int[size]

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

我可以这样使用qSort它吗QtAlgorithms.h

qSort(array, array+size-1)

我不确定,因为这些论点需要一种RandomAccessIterator

这是否意味着任何指针?

4

1 回答 1

0

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

由于 STL 不再可用于构建和使用 Qt,QtAlgorithms 的许多部分不再有意义,因此已被弃用。

STL 中提供了替代品,并且通常具有更好的性能,但并非在所有情况下都立即与源代码兼容。例如,qLess 或 qSwap 的特化意味着从 qSort 直接移植到 std::sort 可能是不可能的,因为 std::sort 不使用它们中的任何一个;一种可能的解决方法是... [有关更多信息,请参阅链接]。

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

有关 和 速度差异的一些讨论std::sort()qSort()请参见此处

这些现在只是警告,但很可能是Qt 6 的错误。

于 2020-03-05T18:00:38.977 回答