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
.