std::partial_sort
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
Определено в заголовочном файле <algorithm>
|
||
template< class RandomIt > void partial_sort( RandomIt first, RandomIt middle, RandomIt last ); |
(1) | |
template< class RandomIt, class Compare > void partial_sort( RandomIt first, RandomIt middle, RandomIt last, Compare comp ); |
(2) | |
Сортирует часть элементов в диапазоне [first, last)
в порядке возрастания. Первые middle - first отсортированные элементы находятся в диапазоне [first, middle)
. Не гарантируется сохранение порядка равных элементов. Порядок элементов в диапазоне [middle, last)
не определен. Первый вариант использует operator< для сравнения элементов, вторая версия использует переданную функцию сравнения comp
.
Содержание |
[править] Параметры
first, last | — | диапазон элементов для сортировки
Оригинал: the range of elements to sort Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
comp | — | объект функции сравнения (т.е. объект, удовлетворяющий требованиям Compare), который возвращает true, если первый аргумент "меньше", чем второй. Определение сравнения должно быть эквивалентно: bool cmp(const Type1 &a, const Type2 &b); Использование noexcept (начиная с C++11) желательно но не обязательно. Параметры не обязаны передаваться по const&, но не должны модифицироваться. Они должны быть способны принимать все значения типа (даже const) |
Требования к типам | ||
-RandomIt должен соответствовать требованиям ValueSwappable и RandomAccessIterator .
| ||
-The type of dereferenced RandomIt must meet the requirements of MoveAssignable and MoveConstructible .
|
[править] Возвращаемое значение
(Нет)
[править] Сложность
cmp
. Если дополнительная память недоступна, то сложность O(N·log(N))cmp
. If additional memory is available, then the complexity is O(N·log(N))Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Пример
#include <algorithm> #include <functional> #include <array> #include <iostream> int main() { std::array<int, 10> s{5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; std::partial_sort(s.begin(), s.begin() + 3, s.end()); for (int a : s) { std::cout << a << " "; } }
Вывод:
0 1 2 7 8 6 5 9 4 3
[править] См. также
копирует и частично сортирует диапазон элементов (шаблон функции) | |
сортирует диапазон элементов, сохраняя порядок между равными элементами (шаблон функции) | |
сортирует диапазон в порядке возрастания (шаблон функции) |