从size_t的减法导致较大的正数

  • 本文关键字:size c++ size-t
  • 更新时间 :
  • 英文 :


我刚遇到一个讨厌的错误,我有一个循环

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个条件,该条件仅在循环中分支到循环中。

相关内容

  • 没有找到相关文章

最新更新