Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 표준 라이브러리란 무엇인가? 주요 구성 요소 총정리

C++ 표준 라이브러리의 정의

C++ 프로그래밍 언어에서 C++ 표준 라이브러리(C++ Standard Library)는 코어 언어로 작성된 클래스와 함수들의 모음으로, 그 자체로 C++ ISO 표준의 일부입니다. 이 라이브러리는 다양한 범용 컨테이너, 컨테이너를 활용하고 조작하기 위한 함수들, 함수 객체(function objects), 범용 문자열과 스트림(대화형 입출력 및 파일 입출력 포함), 일부 언어 기능에 대한 지원, 그리고 숫자의 제곱근을 구하는 것과 같은 일상적인 작업을 수행하는 함수들을 제공합니다.

아래에서는 C++ 표준 라이브러리의 주요 특징들을 살펴보겠습니다.

1. 스트림(Streams)

스트림 관련 라이브러리는 C++에서 사용할 수 있는 다양한 종류의 스트림을 다루는 데 활용됩니다. 예를 들어, fstream은 파일 스트림을 나타내며, 이 클래스를 사용해 파일을 생성하고, 파일에 정보를 쓰고, 파일로부터 정보를 읽을 수 있습니다. 또한 sstream은 문자열 스트림을 나타내며, 주로 문자열을 조작하는 데 사용됩니다.

2. 컨테이너(Containers)

컨테이너는 벡터(vector), 셋(set), 맵(map), 스택(stack), 큐(queue) 등 다양한 자료구조 형태로 데이터를 저장하는 클래스들의 집합입니다. 컨테이너는 STL(표준 템플릿 라이브러리)의 핵심 구성 요소입니다.

3. 일반 라이브러리(General Libraries)

알고리즘(algorithm), 시간 처리를 위한 크로노(chrono), 반복자(iterator), 메모리(memory) 등 폭넓게 활용되는 범용 라이브러리들이 여기에 포함됩니다.

4. 수치 라이브러리(Numerics Library)

수치 라이브러리는 C++ 프로그램이 준수치(semi-numerical) 연산을 수행할 때 사용할 수 있는 구성 요소들의 모음입니다. 예를 들어, <complex> 헤더는 복소수를 표현하고 조작하기 위한 클래스 템플릿과 다양한 함수를 정의하며, <random> 헤더는 (유사)난수를 생성하는 데 사용됩니다.

5. 스레딩(Threading)

스레딩 라이브러리는 C++11에서 처음 도입되었으며, 동시성(concurrency) 처리를 담당합니다. 멀티스레드 환경에서 프로그램을 효율적으로 작성할 수 있도록 다양한 기능을 제공합니다.

6. C 표준 라이브러리(C Standard Library)

C 표준 라이브러리의 모든 헤더 파일은 C++ 표준 라이브러리에 다른 이름으로 포함됩니다. 이름 규칙은 확장자 '.h'를 제거하고 앞에 'c'를 붙이는 방식입니다. 예를 들어, C의 'time.h'는 C++에서 'ctime'이라는 이름으로 제공됩니다.

표준 라이브러리와 STL의 차이점

주의할 점은 C++의 표준 라이브러리가 표준 템플릿 라이브러리(STL)와 동일한 개념이 아니라는 것입니다. STL은 표준 라이브러리의 하위 집합(subset)으로, 컨테이너, 반복자, 알고리즘 등을 포함하는 부분 집합에 해당합니다. 즉, STL이 표준 라이브러리에 포함되는 관계이지, 두 용어가 완전히 같은 것은 아닙니다.