【问题标题】:Displaying all elements of a vector显示向量的所有元素
【发布时间】:2020-09-20 11:41:02
【问题描述】:

第一个 for 循环

 int i;
  对于 (i = 0; i 

第二个for循环

cout

为什么当我使用第一个 for 循环显示向量中的所有元素时,我在向量的末尾得到“0”。但是,当我使用范围 for 循环时,我没有得到零。

【问题讨论】:

  • vec.size() 给你 unsigned int

标签: c++ for-loop c++11 vector


【解决方案1】:

在第一个循环中,当i 到达vec.size() 时,vec[i] 超出了vec 的范围,从而导致undefined behaviour (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] << " ";
}

另一方面,ranged-based for loop 精确地迭代所有元素,让我们远离这些麻烦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 2017-07-11
    相关资源
    最近更新 更多