C++ 표준 라이브러리에는 많은 종류의 라이브러리가 존재한다. 예를 들어 입출력 라이브러리(iostream 등), 시간 관련 라이브러리(chrono) 등이 있다. 특히 C++ 템플릿 라이브러리(Standard Template Library)는 다음 세 개의 라이브러리들을 의미한다
- 임의 타입의 객체를 보관할 수 있는 컨테이너 라이브러리(container)
- 컨테이너에 보관된 원소에 접근할 수 있는 반복자(iterator)
- 반복자들을 가지고 일련의 작업을 수행하는 알고리즘
위에서 볼 수 있듯이, 컨테이너에 임의 타입의 객체를 보관할 수 있다고 한다. 임의 타입의 객체를 보관할 수 있는 이유는 템플릿으로 구현되어 있기 때문이다. 따라서 int, string 같은 기본적인 자료형이 아닌, 사용자가 직접 만든 클래스 객체들도 컨테이너들이 보관할 수 있다는 의미이다.
특징 | 예시 | |
Sequence Container | 정렬되지 않고, 원래 순서 그대로 유지 | vector, deque, list |
Associative Container | 졍렬된 컨테이너(단 unordered 부류의 자료 구조는 정렬되지 않음) | set, multiset, unordered_set, map, multimap, unordered_map |
Container Adapter | 기존 Container의 인터페이스를 제한하거나 변형해서 만든 컨테이너. 반복자를 지원하지 않으므로 STL 알고리즘에서 사용할 수 없음. 예를 들어, stack은 vector의 인터페이스를 제한해서 LOFO 시멘틱을 따르도록 만듬. |
stack, queue, priority queue |
Reference
'공부 > C || C++' 카테고리의 다른 글
C++17 string_view (2) | 2022.09.19 |
---|---|
C++ vector::push_back vs vector::emplace_back (0) | 2022.09.18 |
C++ std::move (0) | 2022.09.05 |
C++ 11 RVO(Return Value Optimization) (0) | 2022.08.29 |
const 멤버 함수의 리턴 타입을 레퍼런스로 할 수 없는 이유/ const 멤버함수 내부에서 const가 아닌 멤버 함수를 호출할 수 없다 (0) | 2021.11.12 |