프로그래밍 공부/STL
C++ STL 이란?
재우이
2022. 2. 12. 23:15
STL (Standard Template Library) : 표준 템플릿 라이브러리
- C++을 위한 라이브러리
- 알고리즘, 컨테이너, 함수자, 반복자 네가지의 구성
컨테이너 (Container)
- 자료형을 담는 일종의 자료구조
- 같은 타입의 여러 객체를 저장하는 일종의 잡합
- 시퀀스 컨테이너, 연관 컨테이너, 어댑터 컨테이너
반복자 (Iterator)
- 컨테이너에 저장된 데이터를 순회하는 과정을 일반화한 표현
- 컨테이너 내부의 데이터를 순회할 수 있는 객체
- 컨테이너의 특정 위치를 나타낸다
알고리즘 (Algorithm)
- 정렬, 삭제, 연산 등을 해결하는 일반화된 방법을 제공하는 함수 템플릿
- 컨테이너 객체의 원소를 다루기 위한 여러가지 알고리즘
함수자(functor) or 함수 객체(function object)
- operator() 연산자를 오버로딩한 클래스 객체
- 함수처럼 동작하는 객체
- 함수를 호출하듯 객체를 호출할 수 있다.
컨테이너 종류 |
1. 순차 컨테이너(시퀀스 컨테이너) |
- vector, list, deque 등등 - 임의의 위치에 삽입,삭제 가능 - 데이터를 순차적 저장 - 저장, 검색, 알고리즘에 불리 - 적은 데이터에 사용 - 느린 검색 |
2. 연관 컨테이너 |
- set, map, multiset, multimap 등 - 일정한 규칙에 따라 데이터를 저장 - 검색에 유리 - 많은 양의 데이터에 사용 - 빠른 검색 |
3. 어뎁터 컨테이너 |
- stack, queue, priority_queue - 데이터를 정해진 방식에 따라 저장 - 기존 컨터이너의 기능을 제한하거나 변형한 컨테이너 - 반복자를 지원하지 않음 |