2013-05-10 74 views
-7

垃圾发生的原因解释&发生的垃圾数量。迭代有趣的输出

#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; 
} 
+0

你知道如何使用调试器吗?如果没有,请参阅http://www.youtube.com/watch?v=z5gBIizwsY0 – sashoalm 2013-05-10 13:22:51

+1

有趣的是,你解释了你希望你的代码做什么,以及为什么。 – 2013-05-10 13:24:54

+2

您应该通过在适当的位置放置空格来格式化代码,使其更具可读性。这样一来,找到错误就容易多了。 – 2013-05-10 13:25:27

回答

6

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

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

你错了...........这就是为什么我把它.....它应该提供错误..... bt首先它显示v1的元素,然后一些垃圾,并再次显示v2 .........我的问题是为什么它显示这样...........并且在调试之后现在清楚..... – 2013-05-10 17:20:16