본문 바로가기
Programming/C, C++

C++ STL(Standard Template Library)란?

by Dev_카페인 2022. 12. 11.
반응형

[C++] STL(Standard Template Library)란?

 

STL이란 Standard Template Library의 약자로 프로그래머가 자료구조와 알고리즘을 알지 못해도 사용할 수 있도록 제공되는 라이브러리다.

* 자료구조를 직접 구현하지 않고 가져다 쓸 수 있게 준비해둔 것

 

표준 STL은 std namespace 안에 있다.

 

STL은 컨테이너(Container) + 반복자(Iterator) + 알고리즘(Algorithm)의 구성요소를 제공한다.

 

컨테이너(Container)

컨테이너는 크게 연속 컨테이너(Sequence Container), 연관 컨테이너(Associative Container), 컨테이너 어댑터(Container Adapter) 로 나뉜다.

 

연속 컨테이너(Sequence Container) : 정렬되지 않은

    - 벡터 (Vector), 디큐(Deque), 리스트(List), 단방향리스트(Slist)

연관 컨테이너(Associative Container) : 정렬된

    - 셋(Set), 멀티셋(MultiSet), 맵(Map), 멀티맵(MultiMap), 순서가 정해지지 않은(Unordered set, multiset, map, multimap)

컨테이너 어댑터(Container Adapter)

    - 스택(Stack), 큐(Queue), 우선순위큐(Priority_Queue)

 

반복자(Iterator)

- 입력 반복자(input iterator) :  읽기만 가능, 순방향 이동, 현 위치의 원소를 한 번만 읽을 수 있는 반복자

- 출력 반복자(output iterator) : 쓰기만 가능, 순방향 이동, 현 위치의 원소를 한 번만 쓸 수 있는 반복자 

- 순방향 반복자(forward iterator) : 읽기/쓰기 모두 가능, 순방향 이동(++)이 가능한 재할당될 수 있는 반복자

- 양방향 반복자(bidirectional iterator) : 읽기/쓰기 모두 가능, 순/역 방향 이동(--)이 가능한 반복자 

- 임의 접근 반복자(random access iterator) : 읽기/쓰기 모두 가능, 임의 접근, 양방향 반복자 기능에 +, -, += , -=, [] 연산이 가능

 

알고리즘(Algorithm)

컨테이너들의 작업을 도와주는 여러 가지 기능들이 정의되어 있는 라이브러리, 탐색 알고리즘, 정렬 알고리즘 등

반응형