이론

STL 컨테이너

TIN9 2023. 4. 21.
반응형

컨테이너란

C++에서 컨테이너는 객체들의 컬렉션을 저장하고 구성하는 데 사용되는 클래스 템플릿이나 미리 정의된 클래스입니다. 컨테이너에 저장된 객체는 동일한 유형이거나 다른 유형일 수 있습니다.

 

컨테이너 종류

STL기준 크게 3가지의 컨테이너로 분류됩니다.

 

시퀀스 컨테이너

종류 : vector, list, deque, forward_list설명 : 순차 컨테이너는 C++에서 선형 시퀀스를 나타내는 컨테이너 유형입니다. 요소는 특정 순서로 저장되며 컨테이너 내에서 위치 또는 인덱스를 사용하여 액세스할 수 있습니다.

 

각 종류별 특징

  1. vector는 요소가 추가 또는 제거됨에 따라 크기가 커지거나 줄어들 수 있는 동적 배열입니다. 요소는 인덱스를 사용하여 상수 시간에 액세스할 수 있습니다.

  2. deque는 vector와 유사하지만, 컨테이너 양쪽 끝에서 요소를 효율적으로 삽입 및 삭제를 할 수 있습니다.

  3. list는 효율적인 삽입 및 삭제를 가능하게 하는 연결 리스트입니다. 그러나 인덱스를 사용하여 엑세스하는 것은 vector 및 deque보다 느립니다.

전반적으로, 시퀀스 컨테이너는 C++에서 순서대로 정렬된 데이터를 효율적으로 관리하는 방법을 제공합니다.

 

연관 컨테이너

종류 : map, set, multiset, multimap

설명 : 연관 컨테이너는 키를 기반으로 효율적 조회, 삽입 및 삭제를 할 수 있게 저장하는 컨테이너입니다.

 

각 종류별 특징

  1. map : 키-값을 저장하는 연관 컨텐이너입니다. 각 키는 특정 값을 갖는 값과 연결됩니다.

  2. set : 고유한 키만 저장하는 연관 컨테이너입니다. 

연관 컨테이너의 구현 방법은 프로그래밍 언어와 컨테이너 유형에 따라 다릅니다. 일반적으로 해시 테이블이나 이진 트리등의 구현 방법이 사용됩니다 .이러한 구현 방법은 효율적인 조회, 삽입 및 삭제를 가능하게 합니다.

 

컨테이너 어댑터

종류 : stack, queue, priority_queue

설명 : 컨테이너 어댑터는 컨테이너의 동작을 수정하거나 확장하여 특정 인터페이스를 제공하는 클래스 템플릿입니다.

 

각 종류별 특징

  1. stack : 스택은 LIFO(last in, first out) 스택 데이터 구조를 제공한느 컨테이너 어댑터입니다.
               요소를 스택의 맨 위에서만 삽입하거나 제거할 수 있습니다.

  2. queue : 큐는 FIFO(first in, first out) 큐 데이터 구조를 제공하는 컨테이너 어댑터입니다. 요소를 큐의 뒤에 삽입하고 앞에서 제거할 수 있습니다.

  3. priority_queue : 우선순위 큐는 우선순위 큐 데이터 구조를 제공하는 컨테이너 어댑터입니다. 우선순위에 따라 요소를 삽입하고 제거할 수 있습니다.
반응형

'이론' 카테고리의 다른 글

메모리 단편화  (0) 2023.04.18
얕은 복사와 깊은 복사의 차이  (1) 2023.04.18
오버로딩과 오버라이딩의 차이  (0) 2023.04.18
램버트 조명 공식  (0) 2022.08.09
렌더링 파이프라인 구조  (0) 2022.08.09

댓글