작성
·
201
0
1, 2, 3, 4, 5, 6을
시계방향 : 6, 1, 2, 3, 4, 5
반시계방향 : 2, 3, 4, 5, 6, 1이 된다고 설명하셨는데
여기까지는 이해가 됩니다.
그런데 아래 예제코드에 보면 begin, end 의 결과가 2, 3, 4, 5, 6, 1이 되어있습니다.
그러면 begin, end가 반시계방향이라는 말인데
p156에 보면 반시계방향은 rbegin, rend을 사용해서 그 결과가 6, 1, 2, 3, 4, 5가 된다고 했습니다.
그리고 위에서 반시계방향은 2, 3, 4, 5, 6, 1이라고 했는데 어디서 뭐가 잘못되었는지 혼란스럽습니다...
답변 1
0
안녕하세요 firdoo님 ㅎㅎ
교안의 오타입니다... 불편을 드려 죄송합니다.
제대로 된 설명은 다음과 같습니다.
그렇다면 시계방향은 어떻게 해야할까요? 앞서 설명한 반시계방향과 같이 하되 begin(), end() 가 아니라 rbegin(), rend()를 사용하면 됩니다.
#include <bits/stdc++.h>
using namespace std;
int main(){
vector<int> v = {1, 2, 3, 4, 5, 6};
rotate(v.rbegin(), v.rbegin() + 1, v.rend());
for(int i : v) cout << i << ' ';
}
/*
6 1 2 3 4 5
*/
해당 부분은 오늘내로 수정되어 올라갈 예정입니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.