스토리텔링 개발자

[More Effective C++] 35. C++98 표준 본문

개발/More Effective C++

[More Effective C++] 35. C++98 표준

김디트 2024. 10. 23. 11:37
728x90

항목 35. C++ 언어의 최신 표준안과 표준 라이브러리에 대해 익숙해지자.

 

 

 

레거시 C++(C++98/03) 라이브러리 범주
  • 표준 C 라이브러리를 그대로 지원
  • 문자열(string) 지원
  • 지역화(localization) 지원
  • 입출력 스트림 라이브러리 변경
  • 숫자 조작을 돕는 데이터 타입 지원
    • 복소수(complex)
    • 숫자 데이터 배열 클래스(valarray)
    • 숫자 조작 함수(부분합(partial sum), 인접차(adjacent difference) 구하기)
  • STL(표준 템플릿 라이브러리(Standard Template Library)) 지원
    • 타입에 상관 없이 쓸 수 있는 일반 용도의 컨테이너와 알고리즘

 

 

 

표준 C++ 라이브러리의 두 가지 특징
  • 표준 라이브러리에 속해 있는 대부분의 것들은 템플릿으로 만들어져 있다.
    • std::string 역시 클래스가 아니라 basic_string 템플릿에 문자 타입 인자를 넣은 템플릿 인스턴스이다.
    • template<typename charT,
               typename traits = char_traits<charT>,
               typename Allocator = allocator<charT> >
      class basic_string;
      
      typedef basic_string<char> string;
  • 이 라이브러리의 모든 구성요소가 std라는 이름의 네임스페이스에 속해있다.

 

 

 

표준 템플릿 라이브러리(Standard Template Library)의 세 가지 기본 개념
  • 컨테이너(container)
  • 반복자(iterator)
  • 알고리즘(algorithm)
728x90
Comments