我遇到了一个令人讨厌的错误,我有一个循环
for (auto i = 0; i < vec.size() -1; ++i) {
//
}
Run Code Online (Sandbox Code Playgroud)
由于vec是一个emtpy std::vector,因此vec.size() - -1评估2^64我的系统.
编写上述循环的正确方法是什么?
size_t 是一个无符号类型,因此问题,这样做:
for (auto i = 0U; i + 1 < vec.size(); ++i)
Run Code Online (Sandbox Code Playgroud)
0U加入使i无符号(避免警告),但我会更好地利用size_t的istead auto在这种情况下,