'프로그래밍'에 해당하는 글 2건

본 내용은 뇌를 자극하는 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호/직업기술-컴퓨터 게임/수강료홈페이지참조


WRITTEN BY
커피김스타
게임 기획, 개발, 프로그래밍, 그래픽, zbrush, 원화, 캐릭터 등등 다양한 정보공유

,

본 내용은 뇌를 자극하는 C++ STL 책 내용을 참고했습니다.

 

STL을 한눈에

 

컨테이너

컨테이너는 같은 타입을 저장, 관리할 목적으로 만들어진 클래스입니다. 컨테이너는 두 가지로 나눕니다.(총 일곱 가지 컨테이너를 제공합니다.)

 

ㅁ표준 시퀀스 컨테이너 : 컨테이너 원소가 자신만의 삽입 위치(순서)를 가지는 컨테이너

ㅁ표준 연관 컨테이너 : 저장 원소가 삽입 순서와 다르게 특정 정렬 기준에 의해 자동 정렬되는 컨테이너

시퀀스 컨테이너는 vector, deque, list 세 가지가 있습니다. 연관 컨테이너는 set, multiset, map, multimap 네 가지가 있습니다. 시퀀스 컨테이너는 삽입되는 순서에 따라 원소의 위치가 결정되고 바뀌지 않습니다. 하지만, 연관 컨테이너는 삽입 순서와 상관없이 정렬 기준(디폴트 less)에 따라 원소의 위치가 결정됩니다.

 

ㅁ배열 기반 컨테이너 : 데이터 여러 개가 하나의 메모리 단위에 저장됩니다.

ㅁ노드 기반 컨테이너 : 데이터 하나를 하나의 메모리 단위에 저장합니다.

 

배열 기반 컨테이너는 vector와 deque 두 가지 입니다. 노드 기반 컨테이너는 list와 연관 컨테이너 모두 set, multiset, map, multimap 다섯 가지입니다. 이런 컨테이너 종류는 성능이나 메모리 사용, 지원 인터페이스(알고리즘, 멤버 함수) 등에 큰 차이를 보이며 컨테이너의 특징을 만들어 냅니다.

대표적인 컨테이너가 vector입니다. vector는 시퀀스 컨테이너이며 배열 기반 컨테이너입니다. 시컨스 컨테이너는 컨테이너 끝에 데이터를 추가하고 제거하기 위한 push_back()과 pop_back()멤버 함수를 가집니다. 또한, 배열 기반 컨테이너는 operator[] 연산자를 이용해 일반 배열처럼 컨테이너 원소에 접근할 수 있습니다. 모든 컨테이너는 원소의 개수를 반환하는 size() 멤버 함수를 가집니다.

vector는 시퀀스 컨테이너이므로 추가한 순서대로 출력됩니다. 또한, 배열 기반 컨테이너이므로 operator[] 연산자로 저장 원소에 접근할 수 있습니다.

다음편에서 다룰 내용은 '반복자'에 대해서 입니다.

 

(출처 : SBS게임아카데미학원)

 

많은 내용들을 혼자 공부하다보면 답답합니다.

저 역시도 그런 부분 때문에 찾아도 보고 책도 사서 공부도 해보고 해봤지만 어렵더군요.
그래서 찾다찾다보니 이런 게임 프로그래밍 역시 전문분야로써 전문학원이 있더라고요.

 

그래서 학원을 찾게 되었고 실제 배우면서 해나가고 있습니다.

기본적인 부분 부터 하나하나 배우면서 해나가니 이해가 쉽고 실력 역시 늘고 있습니다.

가장 좋은점은 스스로 생각하게 해주신다는 점입니다.

정답을 정해놓고서 가르쳐 주시는 것이 아닌 해답을 찾기 위한 소통 그리고 갖가지 방법들을 제시해주시면서 진행해나가니 막상 배울때는 막막하다가도 해결하고 나면 다시는 잊어버리지 않고 기억하는 것이 참 좋았습니다. 

 

 

위그림을 클릭하면 해당 페이지로 이동합니다.

전국에 지점이 있습니다.

 

무료 상담 / 무료 수강료조회 / 다양한 혜택이벤트 등이 있습니다.

 

에스비에스아카데미게임학원/제4293호/직업기술-컴퓨터 게임/수강료홈페이지참조

 


WRITTEN BY
커피김스타
게임 기획, 개발, 프로그래밍, 그래픽, zbrush, 원화, 캐릭터 등등 다양한 정보공유

,