array: Array class
vector: Vector
deque: Double ended queue
forward_list: Forward list
list: List
stack: LIFO stack
queue: FIFO stack
priority_queue: Priority queue
set: Set
multiset: Multiple-key set
map: Map
multimap: Multiple-key map
unordered_set: Unordered Set
unordered_multiset: Unordered Multiset
unordered_map: Unordered Map
unordered_multimap: Unordered Multimap
포인터와 비슷한 개념으로 컨테이너의 원소를 가리킨다.
가리킨 원소에 접근해서 다음 원소를 가리키는 기능을 수행한다.
Traversal(순회)이 가능하게 한다.
정렬, 삭제, 검색, 연산을 실행하는 일반화(generic)된 함수 템플릿
함수처럼 동작하는 객체로 operator() 연산자를 오버로딩 한 객체를 의미한다.
객체의 인터페이스를 수정해서 새로운 인터페이스를 제공하는 요소로 변경.
Container Adaptor = { stack, queue, priority_queue }
어떤 경우엔 일반적인 container로 분류하기도 함.
컨테이너의 메모리 할당을 담당하는 객체
모든 컨테이너는 각 객체별 전용 할당기를 가지고 있음.
한 함수를 “어떤 타입 T”에 대해서도 동작하도록 일반화
예: getmax(x, y), getmax(d1, d2), getmax(s1, s2)
사용자가 정의한 타입(복소수, 행렬 등)에 대해서도 연산자 오버로드를 통해 활용 가능.
Class Template vs Function Template
Class Template: template <typename T1, typename T2>로 pair, vector 등
Function Template: template T getmax(T x, T y) {...}