ranges::move

ranges::move (범위 이동 — ranges)

범위의 요소를 목적지로 이동시키는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

std::ranges::move는 범위의 요소를 이동 생성/대입으로 목적지 result에 옮겨요.

namespace std::ranges {
template< std::input_iterator I, std::sentinel_for<I> S,
          std::weakly_incrementable O >
requires std::indirectly_movable<I, O>
constexpr move_result<I, O> move( I first, S last, O result );
}
  • 반환 타입 move_result{in, out}.
  • result가 소스 범위 안에 있으면 미정의 동작이에요(겹치면 ranges::move_backward 사용).
std::vector<std::string> src{"a", "b", "c"};
std::vector<std::string> dst(3);
std::ranges::move(src, dst.begin());

std::move(캐스트)와 달리 이건 범위를 이동하는 알고리즘이에요. ranges 버전으로 이름이 혼동에 주의해야 해요.

더 알아보기 (Learn more)

cppreference