【发布时间】:2009-07-11 16:09:00
【问题描述】:
我见过人们在表示无符号整数时使用size_t。例如:
class Company {
size_t num_employees_;
// ...
};
这是好的做法吗?一件事是你必须包括<cstddef>。应该改为unsigned int 吗?甚至只是int?
只使用int 听起来对我很有吸引力,因为它避免了像这样的愚蠢错误(因为人们经常使用int):
for(int i = num_employees_ - 1; i >= 0; --i) {
// do something with employee_[i]
}
【问题讨论】:
-
我不知道有谁会从大小向下计数到 0。:|
-
我很好奇关于选角的答案。如果您使用 unsigned int 或 int 并且这不是系统上的 size_t 实际值,那么大概它必须对其进行转换,因此可能会影响性能?
-
它可能很有用,但按照示例显示的方式进行操作只是不好的做法。选择数据类型以满足不良做法会导致两种不良做法。
-
@GMan:好吧,如果有一个 函数 可以返回项目的数量,那么倒数会很有用:for(int i=getNum()-1; i >=0; --i) 因为如果你只是向上计数,那么该函数将被多次调用(潜在的性能问题)。
-
在这种经济环境下,您经常将员工数归零。听说过“后进先出”吗?