less than 1 minute read

STL

STL은 데이터를 구성하고 처리하는 강력한 도구다. 모두 템플릿으로 정의되어 있어 최소 요구 조건만 맞으면 어떤 타입의 데이터에도 쓸 수 있다.

  • Standard Template Library

  • 프로그래머가 자료구조와 알고리즘을 직접 구현하지 않아도 사용할수 있도록 제공되는 라이브러리이다.

  • 크게 컨테이너, 반복자, 알고리즘, 수치 네 가지로 나눌 수 있다.


  1. 컨테이너

    데이터를 저장하고 관리하는 데 쓸 수 있는 컨테이너가 저장되어 있다

    예를 들면, 리스트나 벡터, 큐 같은 내가 흔히 자료구조라고 알고 있는 것들을 말한다

    시간복잡도가 가장 최소화 될 수 있는 자료형을 골라 그걸로 컨테이너를 선택해 만들면 성능을 극대화 할 수 있다. array, vector, stack, queue, deque, list, forward_list, set, unordered_set, map, unordered_map 등이 있다.

  2. 반복자

    포인터처럼 동작하는 객체로, 컨테이너 원소를 순회하는 방법을 추상화한 객체

    라이브러리는 iterator 헤더파일 하나로 정의되어 있다

  3. 알고리즘

    정렬, 삭제, 검색 등의 활동을 수행하는 작업을 정의해 놓은 템플릿 함수

  4. 수치

    숫자와 관련된 기능이 폭넓게 정의되어 있음

    컨테이너에 있는 원소에 수치 처리를 할 수 있는 기능이 포함되어 있다. 또한 랜덤 숫자 생성과 같은 기능도 있다. 템플릿은 cmath, complex, valarray, numeric, random, ratio 등 헤더파일에 정의되어 있다