[[[문제]]] 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 함수의 원리에 대해 잘 이해하고 있어야 해결 가능한 문제이다.
학습 장소: 한국공학대학교 게임공학과 수업
'---C++ 역량 강화--- > STL 공부' 카테고리의 다른 글
all_of, any_of, none_of (0) | 2024.05.30 |
---|---|
알고리즘의 분류 (0) | 2024.05.30 |
high_resolution_clock (0) | 2024.05.29 |
vector(+flat set), set, unordered set 찾기 속도 비교 (0) | 2024.05.28 |
unordered_associative container 학습 (0) | 2024.05.28 |