C++ 표준 라이브러리는 C++ 프로그래밍 언어에서 널리 사용되는 라이브러리로, 다양한 자료 구조와 알고리즘, 유틸리티를 제공하여 C++ 프로그램 개발을 지원한다. 컨테이너, 일반 기능, 문자열, 스트림과 입출력, 수치 처리, 스레드 지원, C 표준 라이브러리 기능 등을 포함하며, C++11, C++20, C++23, C++26 등 여러 버전에서 새로운 기능들이 지속적으로 추가되고 있다.
algorithm
functional
<stdio.h>
<locale.h>
<iso646.h>
C++ 표준 라이브러리는 데이터를 저장하고 관리하며, 특정한 목적과 성능 특성을 가지는 다양한 자료 구조인 컨테이너들을 제공한다.C++ 프로그램이 사용할 수 있는 컨테이너 자료 구조 구성 요소는 다음과 같다.
각 컨테이너는 특정한 자료구조를 표현하며, 다음과 같이 분류할 수 있다.
C++ 표준 라이브러리는 표준 템플릿 라이브러리(STL)의 영향을 받아 만들어졌으며, 컨테이너 외에도 여러 유틸리티 기능을 제공한다.[4][5] 이러한 기능들은 C++ 프로그래밍의 효율성과 편의성을 높여준다.C++ 표준 라이브러리의 일반 기능 관련 구성 요소는 다음과 같다.
C++ 프로그램 개발 지원에 사용되는 구성 요소는 다음과 같다.
std::chrono::duration
std::chrono::time_point
C++ 표준 라이브러리에서 문자열 조작에 사용되는 구성 요소는 다음과 같다.
iostream영어 헤더는 표준 입출력 스트림 (cin, cout, cerr, clog)을 제공한다.[2] fstream영어 헤더는 파일 입출력을 위한 기능을 제공한다.[2] sstream영어 헤더는 문자열 기반 입출력을 위한 기능을 제공한다.[2] iomanip영어 헤더는 입출력 조작(formatting)을 위한 기능을 제공한다.[2]C++ 프로그램이 입출력 및 파일 조작에 사용할 수 있는 구성 요소는 다음과 같다.
C++ 프로그램에서 준수치 연산을 수행하기 위해 사용할 수 있는 구성 요소는 다음과 같다.
C++11부터 멀티스레딩 프로그래밍을 위한 기능들이 표준 라이브러리에 추가되었다.[8]
C++ 표준 라이브러리는 C 표준 라이브러리의 기능들을 포함하고 있다. C 표준 라이브러리의 헤더들은 `.h` 확장자를 제거하고 앞에 'c'를 붙인 형태로 제공된다 (예: ``, ``). C 표준 라이브러리의 기능들은 `std` 네임스페이스 안에 위치한다. ISO C에서는 표준 라이브러리 함수를 매크로로 구현할 수 있지만, ISO C++에서는 허용되지 않는다.C++에서는 C 표준 라이브러리의 헤더를 사용할 때, C++ 명명 규칙에 따라 헤더 이름 끝에서 `.h`를 제거하고 앞에 `c`를 붙인다. 예를 들어 `time.h`는 `ctime`이 된다. 또한, 이 헤더들 안에 선언된 함수나 자료형은 `std` 네임스페이스 안에 위치하므로, 사용할 때 `std::`를 붙여서 구분한다. (단, 네임스페이스의 영향을 받지 않는 매크로는 예외)
다음은 C++ 명명 규칙이 없는 특수한 C 호환성 헤더이다. 이 헤더가 필요한 경우 C 헤더를 사용해야 한다.
`stdnoreturn.h` 및 `threads.h` C 헤더는 C++에 해당하는 항목이 없으며 C++에서 지원되지 않는다.
C++ 표준은 1990년대 C++ ISO 표준화 노력의 일환으로 ISO 표준화를 거쳤으며, 2011년 이후 3년마다 확장 및 업데이트되고 있다.[8] C++20, C++23 등에서 새로운 기능들이 지속적으로 추가되고 있다.C++20에서는 모듈이 도입되었고, C++23부터는 C++ 표준 라이브러리를 모듈을 사용하여 가져올 수 있게 되었다. C++ 표준은 `std` 및 `std.*`를 모듈 이름으로 예약했다.[11]C++23 현재 표준에서 정의된 표준 라이브러리 모듈은 다음과 같다.
C와의 상호 운용성을 위해, ".h"로 끝나는 ISO C 표준 라이브러리 헤더는 C++23에서 더 이상 사용 중단되지 않는다.[2][3]표준 라이브러리의 다른 하위 집합을 제공하는 추가 모듈을 추가하는 것이 제안되었으며, 이는 향후 개정에 포함될 수 있다.[12][13] 제안된 모듈은 다음과 같다.
C++ 프로그램이 기능을 향상시키기 위해 사용할 수 있는 구성 요소는 다음과 같다.
C++ 프로그램 개발 지원에 사용할 수 있는 구성 요소는 다음과 같다.
C++ 프로그램이 지역화 및 문자 인코딩 조작에 사용할 수 있는 구성 요소는 다음과 같다.
C++ 표준은 `std` 및 `std.*`를 모듈 이름으로 예약했다.[11]C와의 상호 운용성을 위해, ".h"로 끝나는 ISO C 표준 라이브러리 헤더는 C++23에서 더 이상 사용 중단되지 않는다.[2][3]
[1] 간행물 Programming Languages – C++ [2] 웹사이트 Clarifying the status of the "C headers" http://www.open-std.[...] 2021-06-11 [3] 간행물 Programming Languages – C++ [4] 서적 The Design and Evolution of C++ §8.5 Addison Wesley [5] 웹사이트 The Standard Template Library http://www.hpl.hp.co[...] HP Labs 1994-08-01 [6] 웹사이트 Generic Algorithms http://www.cs.rpi.ed[...] [7] 웹사이트 std::nth_element http://en.cppreferen[...] cppreference.com 2018-03-20 [8] 문서 C++ IS Schedule https://www.open-std[...] [9] 웹사이트 Apache C++ Standard Library http://stdcxx.apache[...] [10] 웹사이트 Apache C++ Standard Library and the Attic http://mail-archives[...] stdcxx-dev mailing list 2014-02-27 [11] 간행물 P2465R3 - C++ Modules: Design and Evolution https://www.open-std[...] 2022 [12] 간행물 P0581R1 - Modules for C++ https://www.open-std[...] 2018 [13] 간행물 P2412R0 - Further refinements to the C++ Modules Design https://www.open-std[...] 2021 [14] 웹사이트 Polymorphic Allocators, std::vector Growth and Hacking https://www.bfilipek[...] 2021-04-30 [15] 웹사이트 Working Draft, Standard for Programming Language C++ http://open-std.org/[...] ISO/IEC 2021-04-30 [16] 간행물 Programming Languages — C++ [17] 간행물 Programming Languages — C++ [18] 서적 The Design and Evolution of C++ §8.5 https://archive.org/[...] Addison Wesley [19] 웹인용 The Standard Template Library http://www.hpl.hp.co[...] HP Labs 1994-08-01 [20] 웹사이트 Generic Algorithms http://www.cs.rpi.ed[...] [21] 웹사이트 nth_element http://en.cppreferen[...] [22] 웹인용 JTC1/SC22/WG21 - The C++ Standards Committee http://www.open-std.[...] ISO/IEC
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다. 모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다. 하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다. 따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다. 문의하기 : help@durumis.com