显示矢量的所有元素

Displaying all elements of a vector

本文关键字:元素 显示      更新时间:2023-10-16

第一个for循环

国际 i; for (i = 0; i <= vec.size((; i++( { if (vec.size(( == 0( { cout <<"[] 列表为空"<<endl; } else { cout <<vec[i] <<" "; } } }

第二个for循环

cout <<"[ "; for(auto num : 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] << " ";
}

另一方面,基于范围的 for 循环精确地迭代所有元素,让我们远离此类麻烦。

相关文章: