소프트웨어 개발/C

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

늘근이 2016. 3. 19. 10:55

처음 C++을 접했을때는 어언 15년전인것 같다.

그때는 뭔지도 몰랐지만, 어쨌든

std::cout<<

이런 장황한 문구로 Hello World를 출력해내는걸 보고, 과연 저게 무엇인지 의문을 가지지 않았던 기억이 있다.


어쨌든 C++표준라이브러리는 프로그래밍을 할 경우 꼭 쓰게되는 스탠다드 라이브러리이며, 클래스들과 함수들의 집합이다.  std라는 네임스페이스안에 선언되고 있으며, 필요하다면 using namespace std;

라는 구문으로 std:: 를 생략해버릴수있다.

아래는 위키피디아에 나온 부분이다.

https://ko.wikipedia.org/wiki/C%2B%2B_%ED%91%9C%EC%A4%80_%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC

컨테이너[편집]

<array>
C++11과 TR1에서 새로 추가되었다. 고정 크기 배열을 위한 컨테이너인 std::array 컨테이너 클래스 템플릿을 제공한다.
<bitset>
비트 배열인 특수화된 std::bitset 컨테이너 클래스를 제공한다.
<deque>
인 std::deque 컨테이너 클래스 템플릿을 제공한다.
<forward_list>
C++11과 TR1에서 새로 추가되었다. 단일 연결 리스트인 std::forward_list 컨테이너 클래스 템플릿을 제공한다.
<list>
이중 연결 리스트인 std::list 컨테이너 클래스 템플릿을 제공한다.
<map>
연관 배열과 멀티맵인 std::map 와 std::multimap 컨테이너 클래스 템플릿을 제공한다.
<queue>
단일 큐인 std::queue, 그리고 우선순위 큐인 std::priority_queue 컨테이너 어댑터 클래스를 제공한다.
<set>
정렬된 연관 컨테이너 또는 집합인 std::set 와 std::multiset 컨테이너 클래스 템플릿을 제공한다.
<stack>
스택인 std::stack 컨테이너 어댑터 클래스를 제공한다.
<unordered_map>
C++11과 TR1에서 새로 추가되었다. 해시 테이블인 std::unordered_map와 std::unordered_multimap 컨테이너 클래스 템플릿을 제공한다.
<unordered_set>
C++11과 TR1에서 새로 추가되었다. std::unordered_set 와 std::unordered_multiset 컨테이너 클래스 템플릿을 제공한다.
<vector>
동적 배열인 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