显示矢量的所有元素
Displaying all elements of a vector
第一个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 循环精确地迭代所有元素,让我们远离此类麻烦。
相关文章:
- 仅显示链表的最后一个元素
- 显示矢量的所有元素
- 在 QListView 中显示最后一个元素
- 在数组中显示第一个元素用户输入
- 尝试从列表中随机选取单个元素并将其显示为C++
- 为什么将函数的返回类型从结构节点*更改为void后,链表的元素没有显示create_ll和显示?
- 我有一个嵌套数组,它由另一个数组中的元素组成,这些元素分组为2.之后,我想显示每个元素的属性
- 数组:如何在指定索引之前显示数组的第一个和最后一个元素以及数组元素的差异?
- 代码是否有效.如果我想显示第一个元素?如果不是,那么 s.begin() 会返回什么?
- C++ rezing 动态数组最多可以处理一定数量的元素,但在某些时候会崩溃并显示错误 (0XC0000005)
- 编写一个递归功能,该功能采用数组并以相反顺序显示元素,而无需在末尾启动数组的索引
- 哪些更好的方法可以显示使用C STL创建的堆栈而不弹出每个元素的方法
- 用于显示矩阵元素的C 函数显示垃圾值
- 为什么这个 while 循环不显示第一个元素?
- 如何显示图形邻接列表的元素?
- 我写了此方法来删除链接列表的重复元素,但它显示了分段故障,原因
- 如何在不使用 C++ 函数的情况下显示链表中的元素
- strlen 显示数组元素的数量错误
- 更新模型/视图方案中 QXXXView (QTableView, QTreeView,..) 元素的显示工具提示
- Visual Studio 2013 C++:STL 容器的元素显示在调试器中