STL 이란?

STL 이란 무엇인지 간단히 알아보자.


Sandard Template Library

STL 은 C++ 를 위한 Template 이 포함된 헤라이브러리이다. STL 은 제네릭 프로그래밍의 도구가 되기 때문에 STL 을 사용하면 더 효율적이고 신뢰할 수 있는 코드를 짤 수 있다. 제네릭 프로그래밍은 데이터 형식에 의존하지 않고, 하나의 값이 여러 데이터를 가질 수 있는 프로그래밍 방식을 의미한다. 이러한 제네릭 프로그래밍 방식을 위해서 C++ 에서는 Template 을 사용하는 것이다. 그래서 STL 이라는 이름에도 Template Library 라고 명시되어 있는 것 같다.

하지만, STL 개념 자체가 실체하는 것은 아니다. 아이버 호튼이 출간한 ‘C++ STL 철저 입문’ 에는 C++ 언어 표준안에서 STL 이 공식적으로 언급되지 않았기 때문에 STL 이 실존하는 것은 아니지만, 많은 C++ 프록그래머가 오랜 시간 사용한 은어이기 때문에 STL 이 template 이 포함된 헤더들을 뜻한다는 것을 알고있다고 했다.

그렇다면, STL 에서 반드시 알아야 할 것들은 무엇이 있는지 알아보자. STL 은 아래와 같이 크게 네 가지 라이브러리로 나눌 수 있다.

  • 컨테이너 라이브러리 – 데이터를 저장하고 관리하는 데 쓸 수 있는 컨테이너가 정의되어 있다. (대표적으로 array, vector, stack, queue, deque, list, forward_set, unordered_set, map, unordered_map 가 있다.)
  • 반복자 라이브러리 – 반복자는 포인터처럼 동작하는 객체로 컨테이너에 있는 객체의 순차열을 참조할 때 사용한다. (대표적으로 iterator 가 있다.)
  • 알고리즘 라이브러리 – 컨테이너에 저장된 원소에 적용할 수 있는 알고리즘이 정의되어 있다. (대표적으로 algorithm 이 있다.)
  • 수치 라이브러리 – 컨테이너에 저장된 원소에 적용할 수 있는 알고리즘이 정의되어 있다. (대표적으로 complex, cmath, valarray, numeric, random, ratio, cfenv 가 있다.)




Reply