Graphisoft®

GSRootVersion: 1.0

Rotate

2개의 인접한 범위에 있는 요소들을 교환합니다.

template <class For>
void Rotate (
    For                 first,
    For                 mid,
    For                 last
);

Template 파라미터

For
순방향 반복자입니다.

파라미터

first
회전될 범위의 1번째 요소의 위치를 설명하는 순방향 반복자입니다.
mid
범위의 1번째 부분과 요소를 교환해야 하는 범위의 2번째 부분에서 1번째 요소의 위치를 설명하는 범위 내에서 경계를 정의하는 순방향 반복자입니다.
last
회전될 범위의 마지막 직전 요소의 위치를 설명하는 순방향 반복자입니다.

설명

Rotate는 범위 내 요소들을 회전시킵니다. 즉, mid가 가리키는 요소는 위치 first로 이동되고, mid + 1가 가리키는 요소는 first + 1로 이동됩니다. 이런 식으로 계속 됩니다. 이 동작에 대해 생각해야 할 한 가지 방법은 두 범위 [first, mid)[mid, last)를 교환하는 것입니다. 공식적으로 0 <= n < last - first인 모든 정수 n에 대하여, 요소 *(first + n)*(first + (n + (last - mid)) % (last - first))에 할당됩니다. Rotatefirst + (last - mid)를 리턴합니다.

참고사항

알고리즘