ranges::move_backward

ranges::move_backward (뒤에서 이동 — ranges)

범위의 요소를 목적지 끝에 맞춰 뒤에서부터 이동시키는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

std::ranges::move_backward는 범위의 요소를 result로 끝나는 목적지에, last부터 역순으로 이동해요.

namespace std::ranges {
template< std::bidirectional_iterator I, std::sentinel_for<I> S,
          std::bidirectional_iterator O >
requires std::indirectly_movable<I, O>
constexpr move_backward_result<I, O>
    move_backward( I first, S last, O result );
}
  • 반환 타입 move_backward_result{in, out}.

요소를 오른쪽으로 밀 때 앞에서 이동하면 덮어쓰므로, 뒤에서부터 처리하는 게 안전해요.

std::vector<std::string> v{"a", "b", "c", "", ""};
std::ranges::move_backward(v | std::views::take(3), v.end());

겹치는 범위를 오른쪽으로 이동시킬 때 쓰는 ranges 버전이에요.

더 알아보기 (Learn more)

cppreference