GeezerVison is showing cpprefjp.github.io — std::partial_sort_copy - cpprefjp C++日本語リファレンス
最終更新日時:
2026年08月25日 12時11分17秒 (JST)
Akira Takahashi
が更新
履歴
編集
function template
<algorithm>
std:: partial_sort_copy
namespace std {
template < class InputIterator , class RandomAccessIterator >
RandomAccessIterator
partial_sort_copy ( InputIterator first ,
InputIterator last ,
RandomAccessIterator result_first ,
RandomAccessIterator result_last ); // (1) C++98
template < class InputIterator , class RandomAccessIterator >
constexpr RandomAccessIterator
partial_sort_copy ( InputIterator first ,
InputIterator last ,
RandomAccessIterator result_first ,
RandomAccessIterator result_last ); // (1) C++20
template < class InputIterator , class RandomAccessIterator , class Compare >
RandomAccessIterator
partial_sort_copy ( InputIterator first ,
InputIterator last ,
RandomAccessIterator result_first ,
RandomAccessIterator result_last ,
Compare comp ); // (2) C++98
template < class InputIterator , class RandomAccessIterator , class Compare >
constexpr RandomAccessIterator
partial_sort_copy ( InputIterator first ,
InputIterator last ,
RandomAccessIterator result_first ,
RandomAccessIterator result_last ,
Compare comp ); // (2) C++20
template < class ExecutionPolicy , class ForwardIterator , class RandomAccessIterator >
RandomAccessIterator
partial_sort_copy ( ExecutionPolicy && exec ,
ForwardIterator first ,
ForwardIterator last ,
RandomAccessIterator result_first ,
RandomAccessIterator result_last ); // (3) C++17
template < class ExecutionPolicy , class ForwardIterator , class RandomAccessIterator ,
class Compare >
RandomAccessIterator
partial_sort_copy ( ExecutionPolicy && exec ,
ForwardIterator first ,
ForwardIterator last ,
RandomAccessIterator result_first ,
RandomAccessIterator result_last ,
Compare comp ); // (4) C++17
}
概要
イテレータ範囲[first, last)を部分的にソートした結果を他の範囲[result_first, result_last)にコピーする。
テンプレートパラメータ制約
RandomAccessIterator は ValueSwappable の要件を満たしている必要がある。*result_first の型は MoveConstructible と MoveAssignable の要件を満たしていること
効果
イテレータ範囲[first,last) にある要素の中から、min (last - first, result_last - result_first) 個の要素をソート済みの状態で [result_first,result_first + min (last - first, result_last - result_first)) に配置する。
戻り値
result_last と result_first + (last - first) で小さい方が返される
計算量
ほぼ (last - first) * log(min(last - first, result_last - result_first)) 回の比較を行う
例
出力
1
2
関連項目
参照