从 size_t 中减去得到大的正数
subtraction from size_t results in large positive number
我只是 运行 遇到了一个令人讨厌的错误,其中有一个循环
for (auto i = 0; i < vec.size() -1; ++i) {
//
}
vec 是一个 emtpy std::vector
,因此 vec.size() -1 在我的系统上计算为 2^64
。
上面循环的正确写法是什么?
size_t
是一个无符号类型,因此出现了问题,只需这样做:
for (auto i = 0U; i + 1 < vec.size(); ++i)
添加 0U
使 i
未签名(以避免警告),但在这种情况下我最好使用 size_t
而不是 auto
What's the correct way of writing the above loop?
保持循环不变,但添加一个 if
条件,仅当向量不为空时才进入循环。
我只是 运行 遇到了一个令人讨厌的错误,其中有一个循环
for (auto i = 0; i < vec.size() -1; ++i) {
//
}
vec 是一个 emtpy std::vector
,因此 vec.size() -1 在我的系统上计算为 2^64
。
上面循环的正确写法是什么?
size_t
是一个无符号类型,因此出现了问题,只需这样做:
for (auto i = 0U; i + 1 < vec.size(); ++i)
添加 0U
使 i
未签名(以避免警告),但在这种情况下我最好使用 size_t
而不是 auto
What's the correct way of writing the above loop?
保持循环不变,但添加一个 if
条件,仅当向量不为空时才进入循环。