Когсуэлл Джефф
Шрифт:
Сортировка — это очень часто выполняющаяся операция, и есть два способа отсортировать последовательность. Можно обеспечить хранение элементов в определенном порядке с помощью ассоциативного контейнера, но при этом длительность операции вставки будет иметь логарифмическую зависимость от размера последовательности. Либо можно сортировать элементы только по мере надобности с помощью
Стандартный алгоритм
Как и в большинстве других алгоритмов, если
Если требуется, чтобы одинаковые элементы сохранили свой первоначальный порядок, используйте
Однако
Это отличает его от
Концепция сортировки очень проста, но есть несколько вариаций на тему ее реализации в стандартной библиотеке. Следующий перечень описывает эти вариации.
Принимает три итератора произвольного доступа —
Делает то же, что и
Принимает три итератора произвольного доступа —
Также можно разделить элементы диапазона в соответствии с каким-либо критерием (функтором), и это является предметом обсуждения рецепта 7.7.
Рецепт 7.7.
7.7. Разделение диапазона
Имеется диапазон элементов, которые требуется каким-либо образом разделить на группы. Например, необходимо переместить в начало диапазона все элементы, которые меньше определенного значения.
Для перемещения элементов используйте стандартный алгоритм
Пример 7.7. Разделение диапазона