我只是想知道我应该使用 std::size_t
循环和其他东西而不是 int
吗?例如:
#include <cstdint>
int main()
{
for (std::size_t i = 0; i < 10; ++i) {
// std::size_t OK here? Or should I use, say, unsigned int instead?
}
}
一般来说,关于何时使用 std::size_t
的最佳实践是什么?
原文由 nhaa123 发布,翻译遵循 CC BY-SA 4.0 许可协议
一个好的经验法则是,您需要在循环条件中与自然是
std::size_t
的东西进行比较。std::size_t
是任何sizeof
表达式的类型,并且保证能够表示 C++ 中任何对象(包括任何数组)的最大大小。通过扩展,它也保证对于任何数组索引都足够大,因此它是数组索引循环的自然类型。如果您只是计算一个数字,那么使用包含该数字的变量类型或
int
或unsigned int
(如果足够大)可能更自然这些应该是机器的自然尺寸。