我刚遇到一个讨厌的错误,我有一个循环
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
unsigned(避免警告),但是在这种情况下,我最好使用 size_t
的 CC_6 istead
编写上述循环的正确方法是什么?
保持循环原样,但仅在向量不为空的情况下添加if
个条件,该条件仅在循环中分支到循环中。