ranges::copy
ranges::copy (범위 복사)
범위의 요소를 목적지로 복사하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
std::ranges::copy는 범위 [first, last)(또는 r)의 요소를 result부터 복사해요.
namespace std::ranges {
template< std::input_iterator I, std::sentinel_for<I> S,
std::weakly_incrementable O >
requires std::indirectly_copyable<I, O>
constexpr copy_result<I, O>
copy( I first, S last, O result );
}
- 반환 값:
copy_result{in, out}로, 마지막으로 복사된 입력/출력 다음 반복자. copy_result는 C++23부터in_value_result로 이름이 바뀌었어요.copy_if(술어 만족만),copy_n(개수 지정), range 버전이 함께 있어요.
std::vector<int> src{1, 2, 3};
std::vector<int> dst(3);
std::ranges::copy(src, dst.begin()); // dst == {1,2,3}
반복자 쌍 대신 범위 하나로 복사해요. 소스와 목적지가 겹치면 미정의 동작이에요(copy_backward 사용).