Вызов qSort для массива с использованием Qt qSort()
У меня есть динамический массив.
int* array = new int[size]
Я использую библиотеку Qt для разработки приложения на C++11.
Могу ли я использовать qSort
от QtAlgorithms.h
по этому так:
qSort(array, array+size-1)
Я не уверен, так как аргументы требуют типа RandomAccessIterator
Это подразумевает какой-либо указатель?
0 ответов
qSort()
устарела с Qt 5.2. Цитата из журнала изменений:
Поскольку STL больше не является необязательным для сборки и использования Qt, некоторые части QtAlgorithms больше не имеют смысла и поэтому устарели.
Замены доступны в STL и, как правило, имеют гораздо лучшую производительность, но не во всех случаях мгновенно совместимы с исходным кодом. Например, специализация qLess или qSwap означает, что прямой перенос на std::sort из qSort может быть невозможен, поскольку std::sort не использует ни один из них; Возможный обходной путь... [см. ссылку для получения дополнительной информации].
Обратите внимание, что, как упоминается в журнале изменений, бывают случаи, когда простого поиска / замены недостаточно.
Для обсуждения различий в скорости std::sort()
а также qSort()
, смотрите здесь.
Сейчас это просто предупреждения, но, скорее всего, это будут ошибки с Qt 6.