STL
stl은 c++언어로된 라이브러리다. 크게 4개로 구성되어있다. -알고리즘(algorithm) -컨테이너(container) -반복자(iterator) -함수객체(functor) 기본이 되는 컨테이너는 c++로 구현된 잘 다듬어진 자료구조라고 보면된다. 그러나 게임관련쪽에서는 stl이 무거워서 새로 정의해서 쓰기도한다. 보통 실무에선 stl을 쓴다고한다. stl구현의 핵심은 템플릿이다. 컴파일할때 결정되는 다형성을 지니게 해준다. stl의 컨테이너는 크게 연관컨테이너(associative container),순차컨테이너(sequence container)로 나뉜다. 컨테이너란 객체를 담는 객체라고 생각하면된다. 객체를 저장하고,정렬 삭제 추가 등등을 할수있게 해주는 기본베이스이다. 순차컨테이너 : vector,list,deque가 있다. 그외에도 slist라던가 있지만 list를 알면 slist는 따라온다. 자료에 순서를 두기때문에 sequence container라고 칭한다. 연관컨테이너 : set,multiset,map,multimap이 있다. 자료의 순서보단 자료간의 관계를 중심으로 두기때문에 associative container라고 칭한다. 자료구조를 공부해보면 알겠지만 자료에 접근하기위해선 자료를 가리키는 무언가가 필요하다. C에서 자료구조를 구현하기위해 포인터를 사용한 경험이있을탠데, stl에선 반복자(iterator)개념을 사용하여 구현한다. iterator는 탬플릿클래스이다. 내부에 알고리즘,탐색등등 유용한 멤버함수와 객체를 가르키는 포인터가 있는 아주 강력한 클래스이다. vector ::iterator iter; //int를 담는vector구조의 iterator 'iter'를 생성한다. 이렇듯 iterator를 사용하고자 하는 자료구조에 맞춰서 생성시켜줘야한다.