본문 바로가기
공부

[C++] STL 컨테이너 정리

by MY블로그 2024. 5. 3.

Sequence Containers (순차 컨테이너)

vector : 동적 배열, 가변 크기 

#include <vector>

push_back(): 벡터 끝에 요소 추가
pop_back(): 벡터 끝에서 요소 제거
front(): 첫 번째 요소 반환
back(): 마지막 요소 반환
insert(): 특정 위치에 요소 삽입
erase(): 특정 위치의 요소 제거

deque : 덱(Double_ended queue), 양쪽 끝에서 삽입 및 삭제 가능 

#include <deque>

push_front(): 덱 앞에 요소 추가
push_back(): 덱 뒤에 요소 추가
pop_front(): 덱 앞에서 요소 제거
pop_back(): 덱 뒤에서 요소 제거
front(): 첫 번째 요소 반환
back(): 마지막 요소 반환

list: 이중 연결 리스트, 임의 위치에서 삽입 및 삭제 가능 

#include <list>

push_front(): 리스트 앞에 요소 추가
push_back(): 리스트 뒤에 요소 추가
pop_front(): 리스트 앞에서 요소 제거
pop_back(): 리스트 뒤에서 요소 제거
front(): 첫 번째 요소 반환
back(): 마지막 요소 반환
insert(): 특정 위치에 요소 삽입
erase(): 특정 위치의 요소 제거

array: 고정 크기 배열, C-style 배열과 유사하지만 더 많은 기능 제공 

#include <array>

size(): 배열 크기 반환
at(): 인덱스로 요소 접근
front(): 첫 번째 요소 반환
back(): 마지막 요소 반환

forward_list: 단일 연결 리스트, 단방향으로만 이동 가능 

#include <forward_list>

push_front(): 리스트 앞에 요소 추가
pop_front(): 리스트 앞에서 요소 제거
front(): 첫 번째 요소 반환
insert_after(): 특정 위치 뒤에 요소 삽입
erase_after(): 특정 위치 뒤의 요소 제거

 

Associative Containers (연관 컨테이너)

set: 정렬된 순서로 고유한 값 저장 (중복 없음) 
multiset: 정렬된 순서로 값 저장 (중복 허용)

#include <set>

insert(): 요소 삽입
erase(): 요소 제거
find(): 요소 검색
count(): 특정 요소의 개수 반환

map: 키-값(key-value) 쌍을 저장하는 정렬된 순서의 컨테이너 (중복된 키 없음) 

multimap: 키-값(key-value) 쌍을 저장하는 정렬된 순서의 컨테이너 (중복된 키 허용)

#include <map>

insert(): 키-값 쌍 삽입
erase(): 키 또는 키-값 쌍 제거
find(): 키 검색
count(): 특정 키의 개수 반환

 

Unordered Containers (비연관 컨테이너)

unordered_set: 해시 테이블을 사용하여 중복되지 않는 값 저장 
unordered_multiset: 해시 테이블을 사용하여 값 저장 (중복 허용)

#include <unordered_set>

insert(): 요소 삽입
erase(): 요소 제거
find(): 요소 검색
count(): 특정 요소의 개수 반환

unordered_map: 해시 테이블을 사용하여 키-값(key-value) 쌍을 저장 (중복된 키 없음) 
unordered_multimap: 해시 테이블을 사용하여 키-값(key-value) 쌍을 저장 (중복된 키 허용)

#include <unordered_map>

insert(): 키-값 쌍 삽입
erase(): 키 또는 키-값 쌍 제거
find(): 키 검색
count(): 특정 키의 개수 반환

 

Container Adapters (컨테이너 어댑터)

stack: 스택 (LIFO 구조)

#include <stack>

push(): 스택에 요소 추가
pop(): 스택에서 요소 제거
top(): 최상위 요소 반환

queue: 큐 (FIFO 구조)

#include <queue>

push(): 큐에 요소 추가
pop(): 큐에서 요소 제거
front(): 첫 번째 요소 반환
back(): 마지막 요소 반환

priority_queue: 우선순위 큐

#include <queue>

push(): 우선순위 큐에 요소 추가
pop(): 우선순위 큐에서 요소 제거
top(): 최우선순위 요소 반환

댓글