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 버전이에요.