【问题标题】:Interesting output by iteration [closed]迭代的有趣输出[关闭]
【发布时间】:2013-05-05 04:43:54
【问题描述】:

解释为什么会发生垃圾以及发生的垃圾数量。

#include <vector>
#include <iostream>

using namespace std;

int main() {
    vector<int> v1;
    vector<int> v2;

    for(int i=0 ; i < 10 ; i++)
        v1.push_back(i);

    for(int i=11 ; i <= 20 ; i++)
        v2.push_back(i);

    for(vector<int>::iterator it = v1.begin() ; it != v2.end() ; it++)
        cout << *it << " ";

    return 0;
}

【问题讨论】:

  • 你知道如何使用调试器吗?如果没有,请参阅youtube.com/watch?v=z5gBIizwsY0
  • 有趣的是你解释了你期望你的代码做什么,以及为什么。
  • 你应该通过在适当的地方放置空格来格式化你的代码,这样它会更易读。这样会更容易找到错误。
  • 这样更好。即使输入格式化代码需要更多时间,您迟早会得到回报。

标签: c++ vector stl


【解决方案1】:

您迭代向量 v1 并针对 v2.end 证明迭代器。 这是错误的。更正:

for (vector<int>::iterator it = v1.begin() ; it != v1.end() ; it++)
     cout << *it << " ";

【讨论】:

  • 你错了............这就是我说它的原因......它应该提供错误......首先它显示了v1的元素然后是一些垃圾,它再次显示 v2 ......我的问题是为什么它会这样显示......在调试之后它现在很清楚......
猜你喜欢
  • 1970-01-01
  • 2014-07-27
  • 2010-09-25
  • 1970-01-01
  • 2013-08-17
  • 1970-01-01
  • 2014-01-28
  • 2013-03-03
  • 2023-02-25
相关资源
最近更新 更多