대부분 언어는 프로그래머의 편의를 위한 자료구조와 알고리즘을 제공한다.
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 |