partial_sort_copy
Материал из cppreference.com
Синтаксис:
#include <algorithm> random_access_iterator partial_sort_copy( input_iterator start, input_iterator end, random_access_iterator result_start, random_access_iterator result_end ); random_access_iterator partial_sort_copy( input_iterator start, input_iterator end, random_access_iterator result_start, random_access_iterator result_end, StrictWeakOrdering cmp );
Алгоритм partial_sort_copy() работает аналогично partial_sort(), за исключением того, что вместо частичной сортировки непосредственно внутри диапазона производится копирование диапазона, и сортировка производится уже в копии. Начальный диапазон определен итераторами [start,end), а диапазон для копирования - [result_start,result_end).
partial_sort_copy() возвращает итератор на конец скопированного, частично отсортированного диапазона.
Пример:
// partial_sort_copy example #include <iostream> #include <algorithm> #include <vector> using namespace std; bool myfunction (int i,int j) { return (i<j); } int main () { int myints[] = {9,8,7,6,5,4,3,2,1}; vector<int> myvector (5); vector<int>::iterator it; // используется оператор сравнения по умолчнию (оператор <): partial_sort_copy (myints, myints+9, myvector.begin(), myvector.end()); // используется специальная функция как функция сравнения comp partial_sort_copy (myints, myints+9, myvector.begin(), myvector.end(), myfunction); // вывод содержимого: cout << "myvector contains:"; for (it=myvector.begin(); it!=myvector.end(); ++it) cout << " " << *it; cout << endl; return 0; }
Вывод:
myvector contains: 1 2 3 4 5
Смотрите также: binary_search, is_sorted, partial_sort, sort, stable_sort