我刚刚遇到了一个令人讨厌的错误,其中有一个循环
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
在这种情况下
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)