2013-05-10 72 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