[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)
컨테이너들의 작업을 도와주는 여러 가지 기능들이 정의되어 있는 라이브러리, 탐색 알고리즘, 정렬 알고리즘 등
'Programming > C, C++' 카테고리의 다른 글
C++ STL 반복자(iterator) 사용법 (0) | 2022.12.11 |
---|---|
C++ STL 컨테이너(Container) 사용법 (0) | 2022.12.11 |
C++ Vector 선언 및 초기화 (0) | 2022.12.08 |
C++ Error(VS) "const char *" 형식의 값을 사용하여 "char *" 형식의 엔터티를 초기화할 수 없습니다. (0) | 2022.12.08 |
C++ conio.h 키보드 입력 받기 (0) | 2022.12.08 |