Programming 기초/C++

STL 컨테이너

코딩상륙작전 2024. 8. 11. 15:41

* 컨테이너

컨테이너는 같은 타입을 저장, 관리할 목적으로 만들어진 클래스(총 7가지 컨테이너 제공)

 

- 표준 시퀀스 컨테이너(standard sequence container)

: 컨테이너 원소가 자신만의 삽입 위치(순서)를 가지는 컨테이너

vector, deque, list: 선형적

 

- 표준 연관 컨테이너(standard associative container)

: 저장 원소가 삽입 순서와 다르게 특정 정렬 기준에 의해 자동 정렬되는 컨테이너

set, multiset, map, multimap: 비선형적

 

 

* 데이터를 하나의 연속한 메모리 단위로 저장하느냐에 따라 컨테이너를 분류

 

- 배열 기반 컨테이너(arrray-based container)

: 데이터 여러 개가 하나의 메모리 단위에 저장

vector, deque

 

- 노드 기반 컨테이너(node-based container)

: 데이터 하나를 하나의 메모리 단위에 저장

list, set, multiset, map, multimap

 

 

* 어댑터

어댑터는 구성 요소의 인터페이스를 변경한다.

 

- 컨테이너 어댑터(container adaptor) : stack, queue, priority_queue

- 반복자 어댑터(iterator adaptor): reverse_iterator, back_insert_iterator, front_insert_iterator, insert_iterator

- 함수 어댑타(function adaptor): 바인더(binder), 부정자(negator), 함수 포인터 어댑터(adaptor for pointers to functions)

 

* stack<int> st;

stack은 디폴트 컨테이너로 deque<int>를 사용하여 stack 컨테이너 객체를 생성한다.

 

* stack<int, vector<int>> st;

vector 컨테이너를 사용하여 stack 컨테이너를 생성한 경우.

 

 

 

 

 

 

출처 : 뇌를 자극하는 C++ STL