我只是想知道我应该使用std::size_tfor 循环和其他东西而不是int?例如:
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?
一个好的经验法则是,对于需要在循环条件中与自然为 a 的事物进行比较的任何事物std::size_t。
std::size_t是任何sizeof表达式的类型,as 保证能够表示 C++ 中任何对象(包括任何数组)的最大大小。通过扩展,它也保证对于任何数组索引都足够大,因此它是数组索引循环的自然类型。
sizeof
如果您只是计算一个数字,那么使用保存该数字的变量类型或int或unsigned int(如果足够大)可能更自然,因为这些应该是机器的自然大小。
unsigned int