STL
-> Standard Template Library의 약자
-> 표준에 등록된 클래스 템플릿의 집합
-> 자료구조 및 알고리즘 등 사용법이 다른 것을 획일화 시킨 것.
STL의 구성 요소
#1. 컨테이너
-> 메모리에 등록된 STL이다.
-> 여러 컨테이너 중 대표적인 것 3가지
컨테이너 구분 기준
메모리 등록 방법
#1. 표준 시퀀스 컨테이너(선형적)
-> vector, list
#2. 표준 연관 컨테이너(비 선형적)
-> 일렬로 줄 지을 수 없는 방법
-> 대표적으로 트리 구조가 있음.
-> map
원소 저장 방법
#1. 배열 기반
-> 배열에 원소를 저장
-> vector
#2. 노드 기반
-> 메모리 여기저기 저장하면서 포인터로 연결해 놓는 구조
-> list, map
-> C#에서는 list가 배열 기반 형태로 되어있고, C++에서는 노드 기반으로 되어있다.
#2. 알고리즘
-> 대부분의 알고리즘은 전역으로 구성되어 있다.
-> 정렬, 탐색 등 획일화 하기 위해 각 컨테이너의 멤버가 아닌 전역으로 정의되어있다.
#3. 반복자
-> 컨테이너를 순회하는데 동일한 방법으로 순회할 수 있도록 만들어 놓았다.
-> STL의 핵심이라고 할 수 있따.
-> 각 컨테이너의 멤버로 정의되어 있다.
#4. 함수 객체
-> 말 그대로 함수를 객체처럼 사용하는 것이다.
'Programming > STL' 카테고리의 다른 글
C++(STL Container) vector (0) | 2020.09.27 |
---|---|
C++(STL Container) map (0) | 2020.09.27 |
C++(STL Container) list (0) | 2020.09.27 |
STL map / unordered_map 과 map이 사용하는 자료구조 (0) | 2020.05.07 |
STL vector에서 push_back과 emplace_back의 차이점 (0) | 2019.12.04 |