gal*_*324 3 c++ for-loop vector c++11
for循环 国际我;
for (i = 0; i <= vec.size(); i++) {
如果 (vec.size() == 0) {
cout << "[] 列表为空" << endl;
} 别的 {
cout << vec[i] << " ";
}
}
}
for循环cout << "[ "; for(自动编号:vec) cout << num << " "; cout<<“]”;
为什么当我使用第一个for循环显示向量中的所有元素时,我在向量末尾得到“0”。但是,当我使用范围 for 循环时,我没有得到零。
在第一个循环中,当i达到 时vec.size(),vec[i]超出了 的范围vec,这会导致未定义的行为(UB)。您需要将循环条件从 更改i<=vec.size()为i<vec.size()。
此外,您vec.size() == 0对循环内部的检查永远不会为真。该检查需要移至循环上方。
if (vec.size() == 0) {
cout << "[] The list is Empty" << endl;
}
for (i=0; i<vec.size(); i++) {
cout <<vec[i] << " ";
}
Run Code Online (Sandbox Code Playgroud)
另一方面,基于范围的 for 循环精确地迭代所有元素,让我们远离这些麻烦。