2024.12.09. 월요일. 공부시작
STL (Standard Template Library)
: 여러 가지 자료구조와 알고리즘 등을 데이터 타입에 의존하지 않게 미리 만들어 놓은 라이브러리
; 원하는 기능에 대해 data type 상관없이 사용할 수 있음.
|
container
|
iterator
|
fontion object
|
algorithm
|
|
일반적인 배열
|
배열의 pointer
|
container의 기준
|
함수
|
|
동일한 type의 많은
원소들을저장하는 객체
|
컨테이너에 저장된 원소들을
접근하고 순화하는 객체
포인터를 일반화한 것
|
operator() 연산자를
오버로딩한 클래스의 객체
|
data를 다루는
유용하고 다양한 함수
|
|
어떤 형태로 저장하느냐에 따라 종류가 다름.
|
pointer는
iterator에 속한 것
|
함수객체
|
|
|
- vector, deque, list
(Sequence)
- set, map,
unordered_set, unordered_map (tree)
- stack, queeu, priority_queue
|
- forward, bidirectional, random access
- reverse_iterator
*container마다 적합한 기능이 다름. 많을수록 무거워짐.
|
- pre-defined:
less
greater
equal_to
hash
...
|
필수적으로 알아야 할 것
- sort, partial_sort,
nth_element, find
- max, min, swap
|
![]() |
![]() |
![]() |
|
|
어떤 container를
선택하는가에 따라 형태가 다름.
모든 형태 사용 가능
|
서로 연결되어 있음.
단방향 - foward
양방향 - bidirectional, random access
|
내가 만들 수도 있으나
위와 같이 이미 정의되어 있는 애들을 사용할수도 있음.
|
다양한 기능을 수행하는
함수 라이브러리
|
* container - iterator는 항상 같이 다닌다
STL Container
* 효율적으로 사용하더라도 성능저하가 발생할 수 밖에 없음. 때문에 굳이 필요하지 않다면 사용하지 않는 것이 좋음.
|
Sequence
|
Adaptors
|
Associative
|
Unordered
associative (Hash)
|
|||
|
static
array
정적배열
|
array
: container 굳이 사용 x
|
sequence container 이용.
필요 인터페이스만 제공
|
Red-black Tree
우선순위 기반 저장
|
associative와 유사.
때문에 처음 사용 기준
이해하면 사용하기 쉬움.
|
||
|
dynamic
array
동적배열
|
vector
: 많이 사용 할 것 (내가)
|
stack
: LIFO (Last In First Out)
: deque
queue
: FIFO (First In First Out)
: deque
priority_queue
: 우선순위 큐
: vector
|
![]() |
|||
|
deque
: vector + list
배열의 특징* 적음
|
||||||
|
list
|
forward_list
: singly linked list
|
|||||
|
list
: doubly linked list
|
||||||
배열의 특징* : 메모리상에 연속되게 존재해야함.
→ deque : 블록 단위로 나누어지기 때문에 연속된다고 보기도, 그렇지 않다고 보기도 애매함.
성능 자체가 느려서 잘 사용하지 않음.
'C++ > STL' 카테고리의 다른 글
| [STL] Vector (0) | 2025.06.12 |
|---|---|
| [STL] STL Algorithm - sort, nth_element, find, find_if (0) | 2025.06.12 |
| [STL] STL Iterator (0) | 2025.06.12 |
| [STL] Modern C++ (2) - operator overloading, function object (1) | 2025.06.12 |
| [STL] Modern C++ (1) - pair, reference, auto, template, for loop, initializer list, class, mem function (0) | 2025.06.12 |



