STL containers

컨테이너 선택 기준

std::vector, std::deque, std::list, std::map, 컨테이너 어댑터는 저장 순서와 접근 방식이 다릅니다.

vector

연속 메모리라 인덱스 접근과 순차 순회가 캐시 친화적으로 이어집니다

중간 삽입과 삭제가 많으면 원소 이동 비용이 커집니다.

list

노드 기반 컨테이너

임의 접근이 느리고 메모리 오버헤드가 큽니다.

map

키로 값을 찾는 연관 컨테이너입니다

정렬된 키 순회가 필요하면 tree 기반 map이 어울립니다.

adapter

컨테이너 어댑터 인터페이스

내부 컨테이너보다 사용 의도를 드러내는 쪽에 초점이 있습니다.

size/empty 공통 멤버 함수로 컨테이너 상태를 일관되게 읽습니다.
begin/end 반복자 범위가 알고리즘과 컨테이너를 연결합니다.
선택 비용 접근, 삽입, 삭제, 정렬 필요성을 한 번에 비교합니다.