Вызов 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.

Другие вопросы по тегам