std :: string和std :: basic_string有什么区别? 为什么都需要?
std::string和std::basic_string什么区别? 为什么都需要?
std::basic_string是用于使string不在字符types中的类模板, std::string是char类模板专用化的typedef 。 是的,他们都需要(或至less是标准要求)。
std::string是std::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> 。