为什么std::string
根本不聪明。为什么它没有字符串操作等功能,如Format/sprintf
,转换为上层,转换为低层,从整数/实数输入,转换为整数/实数,以及其他重要函数字符串类应具有(参考:CString
,wxString
,System.String
,BASIC字符串......)。
我知道有std::to_string
这样的新功能,但是......为什么string
本身就是如此愚蠢。为什么只是vector<char>
?为什么还处于石器时代?为什么标准不能让它变得聪明!?
答案 0 :(得分:11)
案例比较和转换完全一般,很难并且需要太多信息;就这么简单。
在美式和英式英语中,确实很简单。
但是德国呢?例如。小写ß(小写字母是一个字符,但大写字母是两个字符:SS)。
std::string
可以支持的宽字符集怎么样?那些来自其他欧洲语言的重音字符如ë?
这个课程根本没什么愚蠢的。它有一个定义明确的规范,标准委员会不会发布可能破坏语言的功能。
至于格式化,这很大程度上推迟到流媒体库,例如, std::stringstream
。没有理由直接加入std::string
。