在我的代码中,我不使用 int 或 unsignedint。对于可移植性,我只使用 size _ t 或 ssize _ t。例如:
typedef size_t intc; // (instead of unsigned int)
typedef ssize_t uintc; // (instead of int)
因为 strlen
,string
,vector
... 都使用 size_t
,所以我通常使用 size_t
。而且我只在 ssize_t
可能是阴性的时候使用它。
但我发现:
无符号整数类型非常适合将存储视为位数组的使用。 使用无符号代替 int 来获得更多的位来表示正整数几乎从来都不是一个好主意。 通过声明未签名的变量来确保某些值为正值的尝试通常会被隐式转换规则挫败。
在 C++程式语言这本书里。
所以我很困惑,我错了吗? 为什么 STL 不遵守书上的建议?