자료구조 컨테이너 종류 및 특징

Jace·2023년 1월 15일
0

컨테이너 Container

C++ 표준 라이브러리에 제공하는 자료구조를 컨테이너(Container)라고 한다. 컨테이너는 모든 프로그램에 있어 자료형과 함께 프로그램 구성에 있어 기본 골격이다. 그리고 각 컨테이너 특성에 맞게 최적화 되어 있는 알고리즘들이 구현되어 있고 제너릭 알고리즘을 사용할 수 있다.

자료구조(資料構造, 영어: data structure)는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미

컨테이너는 템플릿으로 만들어져 있기 때문에 기본적인 조건만 맞으면 어떤 데이터 타입이든 수용 가능하다.

카테고리

컨테이너는 5개의 카테고리로 나눌 수 있다.

순차 컨테이너(Sequence containers)

array : 배열과 동일하게 고정된 크기의 선형 구조이다.
vector : 뒷쪽으로 자료를 추가할 수 있으며 동적으로 크기 조절이 되는 선형 구조이다.
deque : 양쪽으로 자료를 추가할 수 있으며 동적으로 크기 조절이 되는 선형 구조이다.
forward_list : 단일 연결 리스트이다.
list : 이중 연결 리스트이다.

연관 컨테이너(Associative Containers)

연관 컨테이너는 자료과 동시에 정렬된다. 중복 키를 사용하는 것은 이름에 multi가 붙는다.

set : 유일 키를 갖는 트리구조이다.
map : 유일 키와 값을 갖는 트리구조이다. 자료입력시 키로 정렬된다.
multiset : 중복 키를 갖는 트리구조이다.
multimap : 중복 키와 값을 갖는 트리구조이다.

해시 컨테이너(Unordered Associative Containers)

해시 키를 이용하는 자료구조이며 연관 컨테이너와 달리 정렬 없이 자료가 바로 추가된다. 연관 컨테이너에 비해 월등히 성능이 좋지만 기본 자료형이 아닌 경우 해시 키를 만드는데 주의하여야 한다.

unordered_set : 유일 해시 키를 갖는 해시 구조이다.
unordered_map : 유일 해시 키와 값을 갖는 해시 구조이다.
unordered_multiset : 중복 해시 키를 갖는 해시 구조이다.
unordered_multimap : 중복 해시 키와 값을 갖는 해시 구조이다.

컨테이너 어댑터(Container Adapters)

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

문제는 목적지에 얼마나 빨리 가느냐가 아니라 그 목적지가 어디냐는 것이다. -메이벨 뉴컴버

profile
오늘한줄.

0개의 댓글