Ary*_*kla 6 c++ size runtime-error
进行编程时,我发现我的代码在使用条件时给出了运行时错误,i < vec.size() - 1
但是对于来说可以正常工作i + 1< vec.size()
。这里vec
空无一人std::vector
。
//giving error
vector<int> vec;
for (int i = 0; i < vec.size() - 1; i++)
{
//some code
}
//not giving error
vector<int> vec;
for (int i = 0; i + 1 < vec.size(); i++)
{
//some code
}
Run Code Online (Sandbox Code Playgroud)
Cor*_*mer 13
该方法std::vector::size
返回一个std::size_t
无符号的。所以,如果它是空的,你会得到0 - 1
,但表示为一个无符号数,将下溢,成为18446744073709551615
根据补。