STL 컨테이너
* 컨테이너
컨테이너는 같은 타입을 저장, 관리할 목적으로 만들어진 클래스(총 7가지 컨테이너 제공)
- 표준 시퀀스 컨테이너(standard sequence container)
: 컨테이너 원소가 자신만의 삽입 위치(순서)를 가지는 컨테이너
vector, deque, list: 선형적
- 표준 연관 컨테이너(standard associative container)
: 저장 원소가 삽입 순서와 다르게 특정 정렬 기준에 의해 자동 정렬되는 컨테이너
set, multiset, map, multimap: 비선형적
* 데이터를 하나의 연속한 메모리 단위로 저장하느냐에 따라 컨테이너를 분류
- 배열 기반 컨테이너(arrray-based container)
: 데이터 여러 개가 하나의 메모리 단위에 저장
vector, deque
- 노드 기반 컨테이너(node-based container)
: 데이터 하나를 하나의 메모리 단위에 저장
list, set, multiset, map, multimap
* 어댑터
어댑터는 구성 요소의 인터페이스를 변경한다.
- 컨테이너 어댑터(container adaptor) : stack, queue, priority_queue
- 반복자 어댑터(iterator adaptor): reverse_iterator, back_insert_iterator, front_insert_iterator, insert_iterator
- 함수 어댑타(function adaptor): 바인더(binder), 부정자(negator), 함수 포인터 어댑터(adaptor for pointers to functions)
* stack<int> st;
stack은 디폴트 컨테이너로 deque<int>를 사용하여 stack 컨테이너 객체를 생성한다.
* stack<int, vector<int>> st;
vector 컨테이너를 사용하여 stack 컨테이너를 생성한 경우.
출처 : 뇌를 자극하는 C++ STL