reverse_copy
대상 범위로 복사 하는 동안 원본 범위 내에서 요소의 순서를 반대로 바꿉니다.
template<class BidirectionalIterator, class OutputIterator>
OutputIterator reverse_copy(
BidirectionalIterator _First,
BidirectionalIterator _Last,
OutputIterator _Result
);
매개 변수
_First
요소는 permuted 되는 원본 범위의 첫 번째 요소의 위치를 가리키는 양방향 반복기입니다._Last
위치 하나 과거 최종 요소 내 요소 permuted 되는 원본 범위의 가리키는 양방향 반복기입니다._Result
출력 요소가 복사 될 대상의 범위에서 첫 번째 요소의 위치를 가리키는 반복기입니다.
반환 값
하나 지난 마지막 요소에서에서 위치 변경된 시퀀스의 요소를 복사 하는 대상 범위를 가리키는 출력 반복기입니다.
설명
참조 하는 원본 및 대상 범위의 유효 해야 합니다. 모든 포인터는 dereferenceable 이어야 하며 마지막 위치에서 첫 번째 접근할 시퀀스 내에서 증분 합니다.
reverse_copy두 폼 관련 있습니다.
이러한 함수가 작동 하는 방식에 대 한 내용은 확인 된 반복기.
예제
// alg_reverse_copy.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <iostream>
int main( ) {
using namespace std;
vector <int> v1, v2( 10 );
vector <int>::iterator Iter1, Iter2;
int i;
for ( i = 0 ; i <= 9 ; i++ )
{
v1.push_back( i );
}
cout << "The original vector v1 is:\n ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
// Reverse the elements in the vector
reverse_copy (v1.begin( ), v1.end( ), v2.begin( ) );
cout << "The copy v2 of the reversed vector v1 is:\n ( " ;
for ( Iter2 = v2.begin( ) ; Iter2 != v2.end( ) ; Iter2++ )
cout << *Iter2 << " ";
cout << ")." << endl;
cout << "The original vector v1 remains unmodified as:\n ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << *Iter1 << " ";
cout << ")." << endl;
}
Output
The original vector v1 is:
( 0 1 2 3 4 5 6 7 8 9 ).
The copy v2 of the reversed vector v1 is:
( 9 8 7 6 5 4 3 2 1 0 ).
The original vector v1 remains unmodified as:
( 0 1 2 3 4 5 6 7 8 9 ).
요구 사항
헤더: <algorithm>
네임 스페이스: std