STL ( Standard Template Library ) 이란?
- STL은 일반적으로 많이 사용되는 자료구조와 알고리즘을 모은 표준 템플릿 라이브러리입니다.
- STL은 반복자, 알고리즘, 함수자, 컨테이너라고 불리는 네 가지의 구성 요소를 제공합니다.
Template 과 Generic Programming
- 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하여 코드의 재사용성 및 다형성의 이점을 얻을 수 있는 프로그래밍 기법입니다.
Template
- Template 은 C++ 에서 Generic Programming 기법을 사용할 수 있는 기능입니다.
STL 반복자 ( iterator )
- STL 은 일관적으로 STL 컨테이너를 접근할 수 있는 iterator 라고 불리는 반복자를 제공합니다.
iterator 를 사용하는 이유
- iterator 를 통해서 STL이 제공하는 컨테이너를 일관적인 방법으로 접근할 수 있습니다.
STL 알고리즘
- STL 은 min_elementPermalink ( 최솟값 ), max_elementPermalink ( 최댓값 ), sort ( 정렬 ), find ( 요소 찾기 ), erase ( 요소 삭제 ) 등의 STL 컨테이너를 대상으로 사용할 수 있는 알고리즘 함수들을 제공합니다.
STL 함수자 ( functor )
- STL은 plus, minus, multiplies, divides 와 같은 산술 연산 함수자 그리고 equal_to, not_equal_to, greater, less 등과 같은 비교 연산 함수자를 제공합니다.
사용 예시
priority_queue<int, vector<int>, greater<int>> pq;
와 같이 사용해서 낮은 숫자가 가장 먼저 pop 될 수 있도록 할 수 있습니다.
STL 컨테이너
- STL은 시퀀스, 연관, 어뎁터 컨테이너를 제공합니다.
시퀀스 컨테이너
- 시퀀스 컨테이너는 데이터를 선형을 저장하고 관리하는 형태의 컨테이너를 말합니다.
- list, vector, deque, forward_list, array 등이 있습니다.
어뎁터 컨테이너
- 기존 컨테이너를 랩핑하여 스택과 큐 같은 인터페이스의 제한을 둔 컨테이너를 말합니다.
- stack, queue, priority_queue 등이 있습니다.
연관 컨테이너
- key 와 value 를 묶어 데이터를 하나의 쌍으로 저장하는 컨테이너를 말합니다.
- map, multimap, set, multiset, unordered_map, unordered_multimap, unordered_set, unordered_multiset 등이 있습니다.
'Programming Language > C, C++' 카테고리의 다른 글
'if-else'문과 'switch-case'의 차이점 (0) | 2022.10.10 |
---|---|
래퍼런스( Reference )와 포인터( Pointer )의 차이 (0) | 2022.10.08 |
C++ 포인터 ( Pointer ) 와 const (0) | 2022.10.04 |
STL 컨테이너별 특징 및 사용처 (0) | 2022.09.28 |
C++ 캐스트 정리 및 사용해야 하는 이유 (0) | 2022.09.20 |