在我的代码中,我不使用int或unsigned int.我只使用size_t或ssize_t进行移植.例如:
typedef size_t intc; // (instead of unsigned int)
typedef ssize_t uintc; // (instead of int)
Run Code Online (Sandbox Code Playgroud)
因为strlen
,string
,vector
...全部使用size_t
,所以我通常使用size_t
.我只会ssize_t
在它可能是负面时使用.
但我发现:
无符号整数类型非常适合将存储视为位数组的用途.使用无符号而不是int来再获得一位来表示正整数几乎不是一个好主意.通过声明无符号变量来确保某些值为正的尝试通常会被隐式转换规则所取代.
在"C++编程语言 "一书中.
所以我很困惑.我错了吗?为什么STL不遵守书中的建议?