partial_sort_copy
복사 요소는 원본 범위의 위치 소스 요소 정렬 하거나 대상 범위 미만 또는 다른 이진 조건부를 지정 합니다.
template<class InputIterator, class RandomAccessIterator>
RandomAccessIterator partial_sort_copy(
InputIterator _First1,
InputIterator _Last1,
RandomAccessIterator _First2,
RandomAccessIterator _Last2
);
template<class InputIterator, class RandomAccessIterator, class BinaryPredicate>
RandomAccessIterator partial_sort_copy(
InputIterator _First1,
InputIterator _Last1,
RandomAccessIterator _First2,
RandomAccessIterator _Last2,
BinaryPredicate _Comp
);
매개 변수
_First1
원본 범위의 위치를 첫 번째 요소의 주소를 지정 하는 입력된 반복기입니다._Last1
입력된 반복기 위치 하나 최종 요소 과거 원본 범위의 주소를 지정 합니다._First2
정렬 된 대상 범위의 첫 번째 요소의 위치 주소는 임의 액세스 반복기입니다._Last2
위치 하나 과거 최종 요소 정렬 된 대상 범위의 주소는 임의 액세스 반복기입니다._Comp
경우 두 요소에 만족 하는 조건을 정의 하는 조건자 함수의 사용자 정의 개체는 해당 하는.두 인수를 사용 하 고 반환 하는 이진 술 부 true 만족 스 러 우면 및 false 만족 하지 않을 때.
반환 값
원본 범위의 대상 범위 한 위치의 마지막 요소는 요소 주소 지정 하는 임의 액세스 반복기를 삽입 합니다.
설명
원본 및 대상 범위가 중첩 되지 않아야 합니다 및 사용할 수 있어야 합니다. 모든 포인터는 dereferenceable 이어야 하며 각 시퀀스에서 마지막 위치에서 첫 번째 접근할 수 여 증분 합니다.
이진 조건부 엄격한 약한 동일 하지 않은 요소가 정렬 될 수 있도록 순서를 제공 해야 하지만 요소는 동일 하지 않습니다.두 요소가 동일한에서 보다 반드시 등호 두 경우 다른 보다.
예제
// alg_partial_sort_copy.cpp
// compile with: /EHsc
#include <vector>
#include <list>
#include <algorithm>
#include <functional>
#include <iostream>
int main() {
using namespace std;
vector<int> v1, v2;
list<int> list1;
vector<int>::iterator iter1, iter2;
list<int>::iterator list1_Iter, list1_inIter;
int i;
for (i = 0; i <= 9; i++)
v1.push_back(i);
random_shuffle(v1.begin(), v1.end());
list1.push_back(60);
list1.push_back(50);
list1.push_back(20);
list1.push_back(30);
list1.push_back(40);
list1.push_back(10);
cout << "Vector v1 = ( " ;
for (iter1 = v1.begin(); iter1 != v1.end(); iter1++)
cout << *iter1 << " ";
cout << ")" << endl;
cout << "List list1 = ( " ;
for (list1_Iter = list1.begin();
list1_Iter!= list1.end();
list1_Iter++)
cout << *list1_Iter << " ";
cout << ")" << endl;
// Copying a partially sorted copy of list1 into v1
vector<int>::iterator result1;
result1 = partial_sort_copy(list1.begin(), list1.end(),
v1.begin(), v1.begin() + 3);
cout << "List list1 Vector v1 = ( " ;
for (iter1 = v1.begin() ; iter1 != v1.end() ; iter1++)
cout << *iter1 << " ";
cout << ")" << endl;
cout << "The first v1 element one position beyond"
<< "\n the last L 1 element inserted was " << *result1
<< "." << endl;
// Copying a partially sorted copy of list1 into v2
int ii;
for (ii = 0; ii <= 9; ii++)
v2.push_back(ii);
random_shuffle(v2.begin(), v2.end());
vector<int>::iterator result2;
result2 = partial_sort_copy(list1.begin(), list1.end(),
v2.begin(), v2.begin() + 6);
cout << "List list1 into Vector v2 = ( " ;
for (iter2 = v2.begin() ; iter2 != v2.end(); iter2++)
cout << *iter2 << " ";
cout << ")" << endl;
cout << "The first v2 element one position beyond"
<< "\n the last L 1 element inserted was " << *result2
<< "." << endl;
}
샘플 출력
Vector v1 = ( 8 1 9 2 0 5 7 3 4 6 )
List list1 = ( 60 50 20 30 40 10 )
List list1 Vector v1 = ( 10 20 30 2 0 5 7 3 4 6 )
The first v1 element one position beyond
the last L 1 element inserted was 2.
List list1 into Vector v2 = ( 10 20 30 40 50 60 1 8 5 2 )
The first v2 element one position beyond
the last L 1 element inserted was 1.
요구 사항
헤더: <algorithm>
네임 스페이스: std
참고 항목
참조
partial_sort_copy (STL Samples)