처음 C++을 접했을때는 어언 15년전인것 같다.
그때는 뭔지도 몰랐지만, 어쨌든
std::cout<<
이런 장황한 문구로 Hello World를 출력해내는걸 보고, 과연 저게 무엇인지 의문을 가지지 않았던 기억이 있다.
어쨌든 C++표준라이브러리는 프로그래밍을 할 경우 꼭 쓰게되는 스탠다드 라이브러리이며, 클래스들과 함수들의 집합이다. std라는 네임스페이스안에 선언되고 있으며, 필요하다면 using namespace std;
라는 구문으로 std:: 를 생략해버릴수있다.
아래는 위키피디아에 나온 부분이다.
컨테이너[편집]
- <array>
- C++11과 TR1에서 새로 추가되었다. 고정 크기 배열을 위한 컨테이너인
std::array
컨테이너 클래스 템플릿을 제공한다.
std::bitset
컨테이너 클래스를 제공한다.std::deque
컨테이너 클래스 템플릿을 제공한다.std::forward_list
컨테이너 클래스 템플릿을 제공한다.std::list
컨테이너 클래스 템플릿을 제공한다.std::map
와 std::multimap
컨테이너 클래스 템플릿을 제공한다.std::queue
, 그리고 우선순위 큐인 std::priority_queue
컨테이너 어댑터 클래스를 제공한다.std::set
와 std::multiset
컨테이너 클래스 템플릿을 제공한다.std::stack
컨테이너 어댑터 클래스를 제공한다.std::unordered_map
와 std::unordered_multimap
컨테이너 클래스 템플릿을 제공한다.std::unordered_set
와 std::unordered_multiset
컨테이너 클래스 템플릿을 제공한다.std::vector
컨테이너 클래스 템플릿을 제공한다.일반[편집]
- <algorithm>
- 많은 컨테이너 알고리즘의 정의를 제공한다.
- <chrono>
-
std::chrono::duration
,std::chrono::time_point
그리고 시계 같은 시간 요소를 제공한다.
- <functional>
- 표준 알고리즘들과 함께 사용되는 목적으로 설계된 여러 함수 객체들을 제공한다.
- <iterator>
- 반복자(iterator)들과 함께 사용되는 클래스와 템플릿을 제공한다.
- <memory>
- C++에서 클래스 템플릿
std::unique_ptr
를 포함한 메모리 관리를 위한 기능들을 제공한다. - <stdexcept>
std::logic_error
와std::runtime_error
(둘 다std::exception
를 상속한다.) 같은 표준 예외 클래스들을 포함한다.- <tuple>
- C++11과 TR1에서 새로 추가되었다. 튜플인 클래스 템플릿
std::tuple
를 제공한다. - <utility>
- 객체 쌍들(2 멤버 튜플들)과 함께 동작하기 위한 템플릿 클래스
std::pair
, 간단한 연산자 오버로딩을 위한 이름공간std::rel_ops
를 제공한다.
지역화[편집]
- <locale>
- 로케일에 따른 특유한 정보를 캡슐화하고 조작하는 클래스들을 정의하고 함수들을 선언한다.
- <codecvt>
- 다양한 문자 인코딩들을 위한 코드 전환 측면을 제공한다.
문자열[편집]
- <string>
- C++ 표준 문자열 클래스와 템플릿들을 제공한다.
- <regex>
- C++11과 TR1에서 새로 추가되었다. 정규 표현식을 사용하여 문자열 패턴 매칭을 위한 유틸리티들을 제공한다.
스트림과 입출력[편집]
- <fstream>
- 파일 기반 입력과 출력을 위한 기능을 제공한다. fstream을 보자.
- <iomanip>
- 정수와 부동 소수점 값의 유효숫자를 포맷팅할 때 사용되는 베이스 같은 출력 포맷 조작을 위한 기능을 제공한다.
- <ios>
- iostream의 동작을 위한 여러 타입과 함수들의 기본을 제공한다.
- <iosfwd>
- 여러 입출력 관련 클래스 템플릿들의 선행선언을 제공한다.
- <iostream>
- C++ 입출력 기본을 제공한다. iostream을 보자.
- <istream>
- 템플릿 클래스
std::istream
와 다른 입력을 위한 지원 클래스들을 제공한다. - <ostream>
- 템플릿 클래스
std::ostream
와 다른 출력을 위한 지원 클래스들을 제공한다. - <sstream>
- 템플릿 클래스
std::stringstream
와 다른 문자열 조작을 위한 지원 클래스들을 제공한다. - <streambuf>
- 외부 파일이나 문자열 같은 특정한 타입의 문자들로 또는 문자들로부터 읽고 쓰는 기능을 제공한다.
언어 지원[편집]
- <exception>
- 표준 라이브러리에 의해 던져진 모든 예외들의 기본 클래스인
std::exception
를 포함한 예외 처리와 관련된 여러 타입들과 함수들을 제공한다. - <limits>
- 기본 수치 타입들의 속성들을 만드는데 사용되는 템플릿 클래스
std::numeric_limits
를 제공한다 - <new>
- 연산자
new
와delete
그리고 C++ 메모리 관리의 기본을 구성하는 다른 함수들과 타입들을 제공한다. - <typeinfo>
- C++ 런타임 타입 정보와 함께 동작하기 위한 기능들을 제공한다.
스레드 지원 라이브러리[편집]
- <thread>
- C++11과 TR1에서 새로 추가되었다. 스레드와 동작하기 위한 클래스와 이름공간을 제공한다.
- <mutex>
- C++11과 TR1에서 새로 추가되었다. 30.4-1 이 섹션은 상호 배제 메커니즘을 제공한다: 뮤텍스 락 등.
- <condition_variable>
- C++11에서 새로 추가되었다. 30.5-1 상태 변수들은 다른 스레드에 의해 통지되기 전까지 스레드를 막기 위해 사용되는 동기화를 제공한다.
- <future>
- C++11에서 새로 추가되었다. 30.6.1-1은 C++ 프로그램이 한 스레드의 함수에서의 결과를 검색하기 위해 사용될 수 있는 구성 요소들을 제공한다.
수치(Numerics) 라이브러리[편집]
C++ 프로그램들이 준-수치 연산들을 수행하기 위해 사용할 수 있는 구성 요소들.
- <complex>
- 헤더 <complex>는 클래스 템플릿과 복잡한 숫자들을 표현하고 다루기 위한 많은 함수들을 정의한다
- <random>
- (슈도)랜덤 숫자들을 생성하기 위한 기능
- <valarray>
- 5개의 클래스 템플릿(valarray, slice_array, gslice_array, mask_array 그리고 indirect_array), 두 클래스(slice와 gslice), 그리고 값들의 배열들을 표현하고 조작하는데 사용되는 관련된 함수들을 정의한다.
- <numeric>
- 일반화된 수치 연산들.
'소프트웨어 개발 > C' 카테고리의 다른 글
C# 기억해두어야 할것 (0) | 2016.04.03 |
---|---|
[링크] 시샵 강좌 (0) | 2016.04.03 |
[링크] 마이크로소프트 Face API C#에서 이용 (0) | 2016.03.20 |
복잡도에 따른 속도 순위 (0) | 2016.03.19 |
콘솔창 유지 (0) | 2016.03.19 |