std::partial_sort
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
Defined in header <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 | — | функция сравнения, возвращающая true если первый аргумент меньше второго. Сигнатура функции сравнения должна быть эквивалентна следующей: bool cmp(const Type1 &a, const Type2 &b); Сигнатура на обязана содержать 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
[править] См. также
копирует и частично сортирует диапазон элементов Оригинал: copies and partially sorts a range of elements Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
сортирует диапазон элементов при сохранении порядка между равными элементами Оригинал: sorts a range of elements while preserving order between equal elements Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (шаблон функции) | |
сортирует диапазон в порядке возрастания (шаблон функции) |