코딩/자료구조

[자료구조] STL

Hun die 2022. 6. 7. 12:25

대부분 언어는 프로그래머의 편의를 위한 자료구조와 알고리즘을 제공한다.

C++은 탬플릿을 이용해 지원하는데 이를 표준 템플릿 라이브러리(Standard Template Library)라고 한다.

 

임의 타입의 객체를 보관할 수 있는 컨테이너 라이브러리(Container Library)

컨테이너에 보관된 원소에 접근할 수 있는 반복자 라이브러리(Iterator Library)

반복자를 가지고 일련의 작업을 수행하는 알고리즘 라이브러리(Algorithm Library)

 

 

컨테이너는 자료구조의 구현체

반복자는 컨테이너의 요소에 접근할 수 있는 포인터

 

둘로 나뉘게 된 이유는 구현 코드의 개수를 줄이기 위함이다.

컨테이너의 개수를 N, 알고리즘의 개수를 M이라 한다면, 컨테이너 각각에 알고리즘을 구현할 때 필요한 구현 코드의 개수는 N * M이다.

하지만 이 사이에 반복자를 추가함으로써 반복자를 통해 각 요소에 추상적으로 접근이 가능하게 돼 총 필요한 구현 코드의 개수를 N + M으로 줄일 수 있다.(반복자 패턴)

 

'코딩 > 자료구조' 카테고리의 다른 글

[자료구조] 스택(Stack)  (0) 2022.07.04
[자료구조] 연결 리스트  (0) 2022.06.20
[자료구조] 시간 복잡도 와 공간 복잡도  (0) 2022.06.07
자료구조  (0) 2022.06.07
[자료구조] 특수화  (0) 2022.05.09