STL은 컨테이너, 알고리즘, 반복자를 분리합니다. 어떤 컨테이너를 고르느냐가 반복자 범위와 알고리즘 성능의 출발점입니다.
vector, deque,
list
삽입 순서가 중요하고 앞뒤 또는 위치 기반 처리가 필요할 때 씁니다.
set, map
키가 정렬되어야 하고 검색, 삽입, 삭제를 균형 있게 처리합니다.
unordered_map
정렬보다 평균 빠른 키 검색이 중요할 때 해시 기반으로 선택합니다.
stack, queue
기존 컨테이너를 감싸 push, pop, top처럼 허용된 행동만 노출합니다.
vector
연속 메모리와 캐시 효율이 좋아 대부분의 첫 선택입니다.
정렬 필요 여부에 따라 ordered와 unordered를 나눕니다.
컨테이너별 반복자 범주가 지원 연산을 제한합니다.