std::string은 basic_string이라는 클래스 템플릿의 인스턴스화 버전이다.
CharT
타입의 객체들을 메모리에 연속적으로 저장하고 여러가지 문자열 연산들을 지원해주는 클래스template <class CharT, class Traits = std::char_traits<CharT>,
class Allocator = std::allocator<CharT> >
class basic_string;
CharT
문자들에 대해 기본적인 문자열 연산들을 정의해놓은 클래스basic_string
)에 대한 로직과 문자열들을 어떻게 연산하는지(Traits
)에 대한 로직을 분리할 수 있게 만듦auto str = "hello"
의 경우 const char*
로 정의됨auto str = "hello"s
처럼 뒤에s
를 붙여주면 auto
가 string
으로 추론됨