---C++ 역량 강화---/STL 공부

rotate 함수를 이용한 전광판 만들기

코리아탑클 2024. 5. 29. 10:10

[[[문제]]] rotate 함수를 이용하여 전광판을 만들어 보자

 

[[[원리 분석]]]

rotate함수

인자1: 시작 위치 반복자

인자2: 화면에 보여줄 시작 위치

인자3: 마지막 위치 반복자

 

(사용 방법)

만약 first = a.begin(), middle = a.begin() + 1, last = a.end()라고 한다면

왼쪽으로 한칸 움직인다.

middle = a.begin() + 2 왼쪽으로 두칸씩 이동

first = a.rbegin(), middle = a.rbegin() + 1, last = a.rend()

오른쪽으로 한칸 이동

middle = a.end() - 2 오른쪽으로 두칸씩 이동

 

(내부 구현)

재귀함수

위에 따라서 재 설정

f = [3], m = [3], l = [4]

w, next_read = [3]

r = [4]

w[3], r[4]가 swap되니 3 4 5 1 2가 최종적으로 출력된다.

 

==헤더 파일==

#include <iostream>
#include <print>
#include <thread>

==소스 코드==

 

width : 가로폭 height: 세로폭 rcnt: 회전 수 jump: 몇 글자 건너 뛸 것인지 (banner.begin() +1에서 +1을 jump로)

print로 출력했을 때 가로폭을 변수로 지정하는 방법이 안되는 것 같다.

왼쪽으로 한글자씩 회전시킨다.

rotate 함수의 원리에 대해 잘 이해하고 있어야 해결 가능한 문제이다.

 

학습 장소: 한국공학대학교 게임공학과 수업

참고: https://en.cppreference.com/w/