ranges::rotate_copy

ranges::rotate_copy (회전 복사 — ranges)

범위를 회전시킨 결과를 새 목적지에 복사하는 ranges 버전 알고리즘이에요. <algorithm> 헤더에 있어요.

출처: cppreference

본문

std::ranges::rotate_copy[first, middle)[middle, last)를 바꾼 순서로 result에 복사해요. 원본은 그대로 두고요.

namespace std::ranges {
template< std::forward_iterator I, std::sentinel_for<I> S,
          std::weakly_incrementable O >
requires std::indirectly_copyable<I, O>
constexpr rotate_copy_result<I, O>
    rotate_copy( I first, I middle, S last, O result );
}
  • 반환 타입 rotate_copy_result{in, out}.
std::vector<int> v{1, 2, 3, 4, 5};
std::vector<int> out(5);
std::ranges::rotate_copy(v, v.begin() + 2, out.begin());
// out == {3,4,5,1,2}

원본을 보존하며 회전된 결과를 새 컨테이너에 담을 때 쓰는 ranges 버전이에요.

더 알아보기 (Learn more)

cppreference