본 내용은 뇌를 자극하는 C++STL 책 내용을 참고 했습니다.
반복자
반복자는 포인터와 비슷하게 동작합니다. 반복자는 컨테이너에 저장된 원소를 순회하고 접근하는 일반화된 방법을 제공합니다. 반복자는 컨테이너와 알고리즘이 하나로 동작하게 묶어주는 인터페이스 역할을 합니다.
ㅁ반복자는 컨테이너 내부의 원소(객체)를 가리키고 접근할 수 있어야 합니다
ㅁ반복자는 다음 원소로 이동하고 컨테이너의 모든 원소를 순회할 수 있어야 합니다
STL에서 컨테이너 원소(객체)의 집합을 순차열이라 합니다. 순차열 개념은 원소의 순서 있는 집합을 의미합니다. 순차열은 하나의 시작과 하나의 끝을 갖습니다. 여기서 박복자는 순차열의 한 원소를 가리킵니다.
STL의 모든 컨테이너는 자신만의 반복자를 제공합니다. 멤버 함수 begin()과 end()가 순차열의 시작과 끝을 가리키는 반복자를 반환합니다.
여기서 주의할 점은 순차열의 시작과 끝에서 끝은 실제 원소가 아닌 끝을 표시하는 원소 입니다. 이 begin과 end를 구간이라 하며, 수학에서 표기하는 방법을 사용해 반개 구간을 [begin, end]처럼 표기합니다.
-v.begin() : 컨테이너의 시작 원소를 가리키는 반복자를 반환합니다.
-v.end() : 컨테이너의 끝 표시 반복자를 반환합니다.
-++iter : 반복자를 다음 원소를 가리키도록 이동합니다.
-*iter: iter가 가리키는 원소(객체)를 반환합니다(역참조).
vector<int>::iterator처럼 모든 컨테이너의 반복자 클래스는 내포 클래스나 typedef 타입이며 자신만의 반복자를 가집니다.
반복자는 다음과 같이 다섯 범주로 나뉩니다.
ㅁ입력 반복자 : 현 위치의 원소를 한 번만 읽을 수 있는 반복자
ㅁ출력 반복자 : 현 위치의 원소를 한 번만 쓸 수 있는 반복자
ㅁ순방향 반복자 : 입력, 출력 반복자 기능에 순방향으로 이동이 가능한 재할당될 수 있는 반복자
ㅁ양방향 반복자 : 순방향 반복자 기능에 역방향으로 이동이 가능한 반복자
ㅁ임의 접근 반복자 : 양방향 반복자 기능에 +,-, +=, -=, [] 연산이 가능한 반복자
모든 컨테이너는 양방향 반복자 이상을 제공합니다. 배열 기반 컨테이너인 vector와 deque는 임의 접근 반복자를 제공합니다.
[출력 결과]
10
20
30
40
50
30
50
-iter[i]: iter+i번째 원소에 접근(역참조)합니다.
-iter + = n:iter를 n만큼 이동합니다.
-iter2 = iter - n: iter 위치에 -n한 위치의 반복자를 iter2에 대입합니다.
결과나 동작 모두 vector의 반복자와 같습니다.
많은분들이 프로그래밍에 대해 어렵다는 인식을 너무 많이 갖고 있습니다.
실제로 쉽진 않지만 그렇다고 너무 어렵지만도 않습니다.
어떻게 보면 재능없이 노력만으로 이뤄낼 수 있는 분야 이기도 하죠.
하지만 노력도 재능이라고 이야기 하는분들을 더러봤습니다.
하지만 끈기를 가지고 끊임없이 도전하면 열리는 날이 분명 다가옵니다.
혼자 하지 않고 실무진 강사님들과 함께 해나가기 때문에 어렵지 않다고 할 수 있죠.
(출처 : sbs게임아카데미학원)
문득 화장실을 지나다 이런말을 본적이 있습니다.
기쁨이 무엇인가는 원래 많은 괴로움을 참아낸 사람들만이 알고 있는 것이다.
그 밖의 사람들은 진정한 기쁨과는 닮지도 않은 단순한 쾌락을 알고 있는데 불과하다.
-힐티-
많은 분들은 괴로움(노력)을 하지 않고서 기쁨만 얻으려 합니다. 물론 그게 잘못된거라고 볼순 없지만 그건 단지 단순한 쾌락이지 진정한 기쁨이 아니라고 합니다.
위 그림을 클릭하면 해당 페이지로 이동합니다.
전국에 지점이 있습니다.
무료상담 // 무료 수강료 조회 // 다양한 이벤트 혜택 등이 있습니다.
에스비에스아카데미게임학원/제4293호/직업기술-컴퓨터 게임/수강료홈페이지참조
'게임프로그래밍' 카테고리의 다른 글
부산유니티학원 chapter3. 함수 객체편 (0) | 2017.05.17 |
---|---|
[부산C++학원]C++STL chapter3. 알고리즘편 (0) | 2017.05.16 |
[게임프로그래밍학원] C++STL, chapter1. 컨테이너편 (0) | 2017.05.15 |
[게임프로그래밍학원] STL이란?? (0) | 2017.05.09 |
부산게임디자인학원 언리얼(unreal) 엔진이란?? (0) | 2017.05.01 |
WRITTEN BY
- 커피김스타
게임 기획, 개발, 프로그래밍, 그래픽, zbrush, 원화, 캐릭터 등등 다양한 정보공유