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 : 블록 단위로 나누어지기 때문에 연속된다고 보기도, 그렇지 않다고 보기도 애매함.

성능 자체가 느려서 잘 사용하지 않음.

+ Recent posts