为什么std :: string实现为`char`的basic_string而不是`unsigned char`

时间:2017-05-14 11:17:02

标签: c++ string

typedef basic_string<char> string;

标准库中的所有std::string工具都使用char。这是为什么?虽然ASCII表(128)的所有字符都适合char(-128到127)的范围,但许多其他字符编码使用8位表示。

在一串字符中包含'否定'值有什么好处?

1 个答案:

答案 0 :(得分:2)

字符串文字的类型为const char*,因此在执行std::string("fooo")时需要进行O(n)转换。