remove_copy
remove_copy (제거하고 복사)
범위에서 특정 값/조건을 만족하는 원소를 빼고 나머지를 복사하는 알고리즘이에요. 원본은 그대로 두고요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
remove_copy는 [first, last)에서 value와 같지 않은(또는 술어가 거짓인) 원소를 d_first에 복사해요.
template< class InputIt, class OutputIt, class T >
OutputIt remove_copy( InputIt first, InputIt last,
OutputIt d_first, const T& value ); // (1)
-
value와 같은 원소를 제외하고 복사.
-
remove_copy_if: 술어pred가 참인 원소를 제외하고 복사.
std::vector<int> v{1, 2, 3, 2, 4};
std::vector<int> out;
std::remove_copy(v.begin(), v.end(), std::back_inserter(out), 2);
// out == {1,3,4}
remove가 제자리라면, remove_copy는 제거된 결과를 새 컨테이너에 담아 원본을 보존해요.