더북(TheBook)

1.1 | 기본 아이디어

 

STL은 데이터를 구성하고 처리하는 강력한 도구다. STL은 모두 템플릿으로 정의되어 있어서 최소 요구 조건만 맞으면 어떤 타입의 데이터에도 쓸 수 있다. 여러분이 클래스 템플릿이나 함수 템플릿을 정의하고 사용하는 방법에 비교적 익숙하다고 생각하지만, 그래도 다음 절에서 기초적인 내용만 정리해두겠다. STL은 개념적으로는 크게 네 가지 라이브러리로 나눌 수 있다.

컨테이너 라이브러리에는 데이터를 저장하고 관리하는 데 쓸 수 있는 컨테이너가 정의되어 있다. 컨테이너 라이브러리 템플릿이 정의되어 있는 헤더 파일에는 array, vector, stack, queue, deque, list, forward_set, unordered_set, map, unordered_map이 있다.

반복자 라이브러리에는 반복자(iterator)가 정의되어 있으며 반복자는 포인터처럼 동작하는 객체로 컨테이너에 있는 객체의 순차열을 참조할 때 사용된다. 라이브러리는 iterator 헤더 파일 하나로 정의되어 있다.

알고리즘 라이브러리에는 컨테이너에 저장된 원소에 적용할 수 있는 알고리즘이 폭넓게 정의되어 있다. 알고리즘 라이브러리를 위한 템플릿은 algorithm 헤더 파일에 정의되어 있다.

수치 라이브러리에는 숫자와 관련된 기능이 폭넓게 정의되어 있으며 여기에는 컨테이너에 있는 원소에 수치 처리(numerical processing)를 할 수 있는 기능이 포함되어 있다. 또한, 라이브러리에는 랜덤 숫자 생성 기능 같은 고급 기능도 있다. 수치 라이브러리를 위한 템플릿은 complex, cmath, valarray, numeric, random, ratio, cfenv 헤더 파일에 정의되어 있다. cmath 헤더는 표준이 아니었지만, 많은 수학 함수를 제공하기 때문에 C++ 11 표준안에 반영되었고 이 책에도 포함되었다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.