C++ 표준 라이브러리에 제공하는 자료구조를 컨테이너(Container)라고 한다. 컨테이너는 모든 프로그램에 있어 자료형과 함께 프로그램 구성에 있어 기본 골격이다. 그리고 각 컨테이너 특성에 맞게 최적화 되어 있는 알고리즘들이 구현되어 있고 제너릭 알고리즘을 사용할 수 있다.
자료구조(資料構造, 영어: data structure)는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미
컨테이너는 템플릿으로 만들어져 있기 때문에 기본적인 조건만 맞으면 어떤 데이터 타입이든 수용 가능하다.
컨테이너는 5개의 카테고리로 나눌 수 있다.
array : 배열과 동일하게 고정된 크기의 선형 구조이다.
vector : 뒷쪽으로 자료를 추가할 수 있으며 동적으로 크기 조절이 되는 선형 구조이다.
deque : 양쪽으로 자료를 추가할 수 있으며 동적으로 크기 조절이 되는 선형 구조이다.
forward_list : 단일 연결 리스트이다.
list : 이중 연결 리스트이다.
연관 컨테이너는 자료과 동시에 정렬된다. 중복 키를 사용하는 것은 이름에 multi가 붙는다.
set : 유일 키를 갖는 트리구조이다.
map : 유일 키와 값을 갖는 트리구조이다. 자료입력시 키로 정렬된다.
multiset : 중복 키를 갖는 트리구조이다.
multimap : 중복 키와 값을 갖는 트리구조이다.
해시 키를 이용하는 자료구조이며 연관 컨테이너와 달리 정렬 없이 자료가 바로 추가된다. 연관 컨테이너에 비해 월등히 성능이 좋지만 기본 자료형이 아닌 경우 해시 키를 만드는데 주의하여야 한다.
unordered_set : 유일 해시 키를 갖는 해시 구조이다.
unordered_map : 유일 해시 키와 값을 갖는 해시 구조이다.
unordered_multiset : 중복 해시 키를 갖는 해시 구조이다.
unordered_multimap : 중복 해시 키와 값을 갖는 해시 구조이다.
stack : 후입선출 되는 자료 구조이다(LIFO data structure).
queue : 선입선출 되는 자료 구조이다(FIFO data structure).
priority_queue : 우선순위 큐는 우선 순위 결정 방식에 맞게 만들어지는 힙(heap) 구조이다.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jidon333&logNo=60212565975
https://wikidocs.net/29953
문제는 목적지에 얼마나 빨리 가느냐가 아니라 그 목적지가 어디냐는 것이다. -메이벨 뉴컴버