std :: string和std :: basic_string有什么区别? 为什么都需要?

std::stringstd::basic_string什么区别? 为什么都需要?

std::basic_string是用于使string不在字符types中的类模板, std::stringchar类模板专用化的typedef 。 是的,他们都需要(或至less是标准要求)。

std::stringstd::basic_string<T>的实例化:

 typedef std::basic_string<char> string 

std::basic_string对于所有types的string都有类似的接口(例如wstring )。

std::string是一个chartypes的std::basic_string模板的实例。 你需std::basic_string<wchar_t> ,除了char之外,你还可以创build一些string,例如一个std::basic_string<wchar_t> 。 或者如果你想要一个32位元素的string, std::basic_string<unsigned int>