본문 바로가기

Algorithm/A. Intro & STL

2. STL Intro

STLStandard Template Library의 약자로 프로그램에 필요한 자료구조, 알고리즘 등을 템플릿으로 제공하며, 크게 컨테이너(Container), 반복자(Iterator), 알고리즘(Algorithm), 함수 객체(Function Object), 어댑터(Adaptor), 할당기(Allocator)의 여섯 가지 구성 요소로 이루어져 있다. 각각에 대한 설명은 다음과 같다:

 

컨테이너(Container): 데이터를 저장하는 객체로 컬렉션 또는 자료구조라고도 한다. 표준 컨테이너와 비표준 컨테이너가 있는데, 표준 컨테이너는 다시 연속 컨테이너(Sequence Container)와 연관 컨테이너(Associative Container)로 나뉜다. 비표준 컨테이너는 유사(근사) 컨테이너(Almost Container)라고 한다.

 

반복자(Iterator): 컨테이너  내부의 요소를 가리키고 순회하는 객체이다. 컨테이너와 알고리즘을 연결하는 역할을 수행한다.

 

알고리즘(Algorithm): 기본적인 작업을 수행하는 일반화된 방법을 제공하는 함수 템플릿이다. 알고리즘은 반복자를 필요로 한다.

 

함수 객체(Function Object): 함수처럼 동작하는 객체이다. 컨테이너와 알고리즘이 클라이언트에서 정의한 대로 동작하도록 한다.

 

어댑터(Adaptor): 구성 요소의 인터페이스를 변경한다. 구성 요소들은 새로운 구성 요소처럼 보이게 된다. 크게 컨테이너 어댑터, 반복자 어댑터, 함수 어댑터로 구분할 수 있다.

 

할당기(Allocator): 컨테이너의 메모리 할당 정보와  메모리 할당 모델을 캡슐화한 템플릿 클래스이다. 기본 할당기는 allocator<T>이다.

 

카테고리 A에서 다루는 것은 컨테이너와 컨테이너 어댑터이다. 다음 글에서부터 주요 컨테이너와 컨테이너 어댑터를 하나씩 살펴볼 것이다.

'Algorithm > A. Intro & STL' 카테고리의 다른 글

6. Stack  (0) 2021.01.10
5. List & Forward List  (0) 2021.01.08
4. Deque  (0) 2021.01.08
3. Array & Vector  (0) 2021.01.07
1. Intro  (30) 2021.01.06