표준 컨테이너
컨테이너는 객체를 담는 객체이다.
이 컨테이너들은 클래스 템플릿으로 구현되어 다양한 타입의 element를 지원한다.
컨테이너는 elements를 위한 저장공간을 관리하고, element에 접근하기위한 멤버 함수를 제공한다. 접근할 때에는 직접 element에 접근할 수도 있고 iterator를 통해서 접근할 수도 있다.
컨테이너는 프로그래밍을 하면서 가장 일반적으로 사용되는 자료구조들로 이루어져있다.
동적배열(vector), 큐, 스택, 힙(priority_queue), 링크드 리스트(list), 트리(set), 연관배열(map)
컨테이너들은 몇몇 멤버함수를 공통적으로 갖는다.
프로그래밍을 하면서 사용할 컨테이너를 고르는 경우, 컨테이너가 제공하는 기능만으로 결정하는 것이 아니라 컨테이너의 내부 구현된 방식을 이해하고 결정해야한다. 특히 순차 컨테이너의 경우 삽입, 삭제, 접근의 효율성이 차이가 난다.
스택, 큐, 우선순위 큐는 컨테이너 어답터이다.
컨테이너 어답터는 완전한 컨테이너 클래스가 아니라 기존 컨테이너 클래스에 의존해 특정한 인터페이스를 제공하는 방식이다.
컨테이너 클래스 템플릿
C++11에서 추가된 함수는 배경색을 칠했다.
순차 컨테이너
array | 배열 클래스 |
vector | 벡터 클래스 |
deque | Double ended queue. 양방향 큐(덱, 데큐, 데크) |
forward_list | 단방향 리스트 |
list | 리스트(더블 링크드 리스트) |
컨테이너 어답터
stack | 스택 (Last In First Out, 후입 선출, 마지막에 들어온 것이 처음으로 나간다.) 한곳에서 들어오고 나가는 구조 |
queue | 큐 (First In First Out, 선입 선출, 처음에 들어온 것이 처음으로 나간다.) 한쪽은 들어오고 한쪽은 나가는 구조 |
priority_queue | 우선순위 큐 |
연관 컨테이너
set | 집합 |
multiset | 여러 키를 갖는 집합 |
map | 맵 (사전형식 자료구조) |
multimap | 여러키를 갖는 맵 |
순서 없는 연관 컨테이너
unordered_set | 순서없는 집합 |
unordered_multiset | 순서없는 멀티키 집합 |
unordered_map | 순서없는 맵 |
unordered_multimap | 순서없는 멀티키 맵 |
'언어 > C++' 카테고리의 다른 글
[C++/STL] Set (0) | 2020.04.26 |
---|---|
[C++/STL]벡터(vector) (0) | 2020.02.20 |
[C++/STL] 리스트(List) (0) | 2020.02.20 |