replace_copy

replace_copy (교체하고 복사)

범위에서 특정 값/조건을 만족하는 원소를 새 값으로 교체해 복사하는 알고리즘이에요. 원본은 그대로 두고요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

replace_copy[first, last)의 원소를 d_first에 복사하되, 조건에 맞는 원소는 new_value로 바꿔 복사해요.

template< class InputIt, class OutputIt, class T >
OutputIt replace_copy( InputIt first, InputIt last,
                       OutputIt d_first,
                       const T& old_value, const T& new_value );   // (1)
    1. old_value와 같은 원소를 new_value로 바꿔 복사.
    1. replace_copy_if: 술어 pred가 참인 원소를 new_value로 바꿔 복사.
std::vector<int> v{1, 2, 3, 2, 4};
std::vector<int> out;
std::replace_copy(v.begin(), v.end(), std::back_inserter(out), 2, 9);
// out == {1,9,3,9,4}

replace가 제자리라면, replace_copy는 교체된 결과를 새 컨테이너에 담아 원본을 보존해요.

더 알아보기 (Learn more)

cppreference