다음을 통해 공유


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

참고 항목

참조

reverse_copy (STL Samples)

표준 템플릿 라이브러리