STL Overview

STL은 저장소, 이동 규칙, 처리 함수를 분리한다

컨테이너가 데이터를 담고, 반복자가 범위를 노출하며, 알고리즘은 반복자 범위에 대해 동작합니다. 이 분리 덕분에 같은 알고리즘을 여러 컨테이너에 적용할 수 있습니다.

1. Container

데이터를 저장합니다. vector, list, map처럼 저장 방식과 비용이 다릅니다.

2. Iterator

begin()end()로 순회 범위를 만듭니다. 알고리즘은 컨테이너 내부를 직접 알 필요가 없습니다.

3. Algorithm

sort, find, copy가 반복자 범위를 처리합니다. 자료구조와 처리 로직이 분리됩니다.

같은 알고리즘, 다른 저장소

반복자 범위가 연결 지점입니다.

std::sort(v.begin(), v.end()); std::find(list.begin(), list.end(), x); std::copy(src.begin(), src.end(), out);

이번 절에서 보는 대상

저장소를 고르는 기준이 성능의 출발점입니다.

sequence ordered associative unordered associative adapter
컨테이너를 고른다는 것은 “어떻게 저장하고, 어떤 반복자와 비용을 줄 것인가”를 먼저 정하는 일입니다.