std::string
和之间有什么区别std::basic_string
?为什么都需要?
Answers:
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仅创建名称,而不是实例)。