프로그래밍 공부/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
- 데이터를 정해진 방식에 따라 저장
- 기존 컨터이너의 기능을 제한하거나 변형한 컨테이너
- 반복자를 지원하지 않음