CopyIfBackward
template <class Bi1, class Bi2, class Pred> Bi2 CopyIfBackward ( Bi1 first, Bi1 last, Bi2 result, Pred pred );
Template 파라미터
- Bi1
양방향 반복자입니다. - Bi2
양방향 반복자입니다. - Pred
단항 술어(Unary predicate)입니다.
파라미터
- first
소스 범위에서 1번째 요소의 위치를 설명하는 양방향 반복자입니다. - last
소스 범위에서 마지막 직전 요소의 위치를 설명하는 양방향 반복자입니다. - result
목적지 범위에서 마지막 직전 요소의 위치를 설명하는 양방향 반복자입니다. - pred
만약 요소를 셀 경우 충족되는 조건을 정의하는 사용자 정의 술어(predicate) 함수 객체입니다. 술어는 1개의 인자를 가지며 true 또는 false를 리턴합니다.
리턴 값
설명
소스 범위는 반드시 유효해야 하며, 목적지는 복사되는 모든 요소들을 저장할 수 있는 충분한 공간이 있어야 합니다. CopyBackwardIf 알고리즘은 CopyIf 알고리즘보다 더 까다로운 요구사항들을 부과합니다.
입력 반복자와 출력 반복자 모두 양방향이어야 합니다. CopyBackward 알고리즘은 목적지 범위의 끝을 가리키는 반복자를 사용하여 출력 범위를 지정하는 유일한 알고리즘입니다. 이 알고리즘은 소스 요소를 마지막 요소부터 순서대로 복사하기 때문에 소스 범위의 last 위치가 목적지 범위에 포함되지 않는 경우 목적지 범위가 소스 범위와 겹칠 수 있습니다.
Copy는 소스 범위와 목적지 범위 간에 겹치지 않는 이상 요소들을 왼쪽이 아닌 오른쪽으로 shift 시킬 수 있습니다.
위치들을 왼쪽으로 shift 하려면 CopyIf 알고리즘을 사용하십시오. CopyBackward 알고리즘은 목적지 범위에 있는 요소들에게 새로운 값들을 할당하면서 반복자들이 가리키는 값들만 변경합니다.
새로운 요소들을 생성하는 데 사용할 수 없으며 빈 컨테이너에 요소들을 직접 삽입할 수 없습니다.