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