std::string과 의 차이점은 무엇입니까 std::basic_string? 그리고 왜 둘 다 필요한가요?
답변:
std::basic_string문자 유형에서 문자열을 만들기위한 클래스 템플릿입니다 std::string인 typedef을위한 클래스 템플릿의 전문화 char. 예, 둘 다 필요합니다 (또는 최소한 표준에 의해 요구됨).
std::string의 인스턴스화입니다 std::basic_string<T>.
typedef std::basic_string<char> string
std::basic_string모든 유형의 문자열에 대해 유사한 인터페이스가 필요합니다 ( wstring예 :
string의 전문화 입니다 basic_string.
namespace std { typedef basic_string<char> string; }않습니다 . 기술적으로는 실제로 인스턴스화도 아니지만 적어도 더 가깝습니다 (정의에 따라 인스턴스화는 인스턴스를 만들고 typedef는 인스턴스가 아닌 이름 만 만듭니다. ).
A std::string는 std::basic_string유형이 인 템플릿 의 인스턴스화 입니다 char. 와이드 문자의 문자열 char과 같이 외에 사물의 문자열을 만들 수 있도록 둘 다 필요합니다 std::basic_string<wchar_t>. 또는 32 비트 요소가있는 문자열을 원하는 경우 std::basic_string<unsigned int>.
std::basic_string없이 인스턴스화 할 수없는 사용 사례를 제공합니다 char.