STL - Algorithm/Algorithm - Sorting
Algorithm - partial_sort_copy()
Programmer.
2017. 6. 30. 12:54
원형)
1 2 3 4 5 6 7 8 9 10 11 12 13 | //기본형 template <class InputIterator, class RandomAccessIterator> RandomAccessIterator partial_sort_copy (InputIterator first,InputIterator last, RandomAccessIterator result_first, RandomAccessIterator result_last); //사용자 정의형 template <class InputIterator, class RandomAccessIterator, class Compare> RandomAccessIterator partial_sort_copy (InputIterator first,InputIterator last, RandomAccessIterator result_first, RandomAccessIterator result_last, Compare comp); | cs |
의미)
[Iterator first, Iterator last)사이에 있는 데이터 중에서 제일 작은 원소들을 [Iterator result_first, Iterator retsult_last)사이에 복사한뒤에 복사된 원소들을 정렬합니다.
소스)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <iostream> #include <algorithm> #include <vector> void print(std::vector<int> Target_Vector) { for (std::vector<int>::iterator IterPos = Target_Vector.begin(); IterPos != Target_Vector.end(); ++IterPos) std::cout << *IterPos << " "; std::cout << std::endl; } void main() { std::vector<int> Vector = { 25, 5,15,10,30,20,15 }; std::vector<int> Vector_Copy(7); print(Vector); std::partial_sort_copy(Vector.begin(), Vector.end(), Vector_Copy.begin(),Vector_Copy.end()); print(Vector); print(Vector_Copy); } | cs |
내용)
결과 값들 중에서 가장 마지막을 가리키는 Iterator를 리턴합니다.
결과)