Rotate : 위치를 이동 시킨다.
First
에서Last
구간을Middle
을 기준으로 회전시킨다.
- n칸씩 밀거나, n칸씩 당겨와야 할때 유용하게 쓰인다.
사실 잘 와 닿지 않는다.
내가 처음에 설명글을 보았을떄 느낀점이다.
Rotate left the elements in range
Rotates the order of the elements in the range [first,last), in such a way that the element pointed by middle becomes the new first element.
좀더 편하게 재해석 해보자
First
를Last
로 옮긴다.First
에서Middle
사이의 범위 만큼!- 이때 (First , Middle] 이다. Middle은 포함되지 않는다.
예시 1
ABCD
문자열이 있다고 해보자.- 좌측으로 한칸씩 밀어
A
를 맨 뒤로 보내고 싶다. BCDA - rotate(begin, begin + 1, end)
- begin ~ begin + 1 ,
A
를 - end
맨뒤
으로 보낸다!
- begin ~ begin + 1 ,
예시 2
ABCD
문자열이 있다고 해보자.- 우측으로 한칸씩 밀어
D
를 맨 앞으로 보내고 싶다. DABC - rotate(rbegin, rbegin + 1, rend)
- rbegin ~ rbegin + 1 ,
D
를 - rend
맨앞
으로 보낸다!
- rbegin ~ rbegin + 1 ,
코드
1 |
|
결과
1 |
|
Reference
http://www.cplusplus.com/reference/algorithm/rotate/?kw=rotate