STL, Standard Template Library란?
- C++의 템플릿을 이용해 표준으로 정리된 라이브러리
STL의 구성 요소
- 반복자(iterator) : STL 컨테이너에 저장된 원소들을 가리키는 포인터
- 컨테이너 : 데이터를 저장하고 관리하기 위한 클래스(vector, list, map, deque …)
- 알고리즘 : STL에서 제공하는 함수(ex : 정렬, 검색 등 …)
컨테이너
- 컨테이너는 데이터를 저장하고, 관리하기 위한 클래스
컨테이너의 종류
- 순차 컨테이너 (sequence container)
- vector, list, deque …
- 임의의 위치에 삽입, 삭제가 가능하다.
- 데이터를 순차적으로 저장한다.
- 일반적인 자료구조와 동일한 형태
- 자료를 입력한 순서대로 저장하기 때문에 저장, 검색 알고리즘에 불리하다
- 많지 않은 자료, 검색 속도가 중요하지 않을 때 사용
- 연관 컨테이너 (associate conatiner)
- set, map, multiset, multimap …
- 일정 규칙에 따라 자료를 조직화하여 저장
- 자료를 정렬/해시 등을 이용해 저장하기 때문에 검색에 유리
- 어댑터 컨테이너 (adaptor container)
- stack, queue
- 데이터를 미리 정해진 방식에 따라 관리
- 순차 컨테이너를 변형시켜 스택 큐 우선순위 큐 형태로 저장