C++ 为什么std::string实现为'char'而不是'unsigned char'的基本_字符串`

C++ 为什么std::string实现为'char'而不是'unsigned char'的基本_字符串`,c++,string,C++,String,typedef基本字符串 标准库中的所有std::string工具都在使用char。为什么呢?虽然ASCII表(128)的所有字符都适合字符的范围(-128到127),但许多其他字符编码都使用8位表示 字符串中有“负值”的优点是什么?字符串文字的类型是const char*,因此在执行std::string(“fooo”)时需要进行O(n)转换,只需附带说明:char可以是有符号的,也可以是无符号的,它不是由c++指定的:问题不是重复,但是有一句话或多或少地回答了您的问题char可以是有符号的,

typedef基本字符串

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


字符串中有“负值”的优点是什么?

字符串文字的类型是
const char*
,因此在执行
std::string(“fooo”)

时需要进行O(n)转换,只需附带说明:
char
可以是有符号的,也可以是无符号的,它不是由c++指定的:问题不是重复,但是有一句话或多或少地回答了您的问题
char
可以是有符号的,也可以是无符号的,并且可能包含超过8位,ASCII也不是必需的。在您使用的系统上工作得最好的。