[C++][STL] STL이란
STL
STL은 데이터를 구성하고 처리하는 강력한 도구다. 모두 템플릿으로 정의되어 있어 최소 요구 조건만 맞으면 어떤 타입의 데이터에도 쓸 수 있다.
-
Standard Template Library
-
프로그래머가 자료구조와 알고리즘을 직접 구현하지 않아도 사용할수 있도록 제공되는 라이브러리이다.
-
크게 컨테이너, 반복자, 알고리즘, 수치 네 가지로 나눌 수 있다.
-
컨테이너
데이터를 저장하고 관리하는 데 쓸 수 있는 컨테이너가 저장되어 있다
예를 들면, 리스트나 벡터, 큐 같은 내가 흔히 자료구조라고 알고 있는 것들을 말한다
시간복잡도가 가장 최소화 될 수 있는 자료형을 골라 그걸로 컨테이너를 선택해 만들면 성능을 극대화 할 수 있다. array, vector, stack, queue, deque, list, forward_list, set, unordered_set, map, unordered_map 등이 있다.
-
반복자
포인터처럼 동작하는 객체로, 컨테이너 원소를 순회하는 방법을 추상화한 객체
라이브러리는 iterator 헤더파일 하나로 정의되어 있다
-
알고리즘
정렬, 삭제, 검색 등의 활동을 수행하는 작업을 정의해 놓은 템플릿 함수
-
수치
숫자와 관련된 기능이 폭넓게 정의되어 있음
컨테이너에 있는 원소에 수치 처리를 할 수 있는 기능이 포함되어 있다. 또한 랜덤 숫자 생성과 같은 기능도 있다. 템플릿은 cmath, complex, valarray, numeric, random, ratio 등 헤더파일에 정의되어 있다