Пространства имён
Варианты
Действия

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