2012-10-29 70 views
1

剛開始學習STL和這裏的第一個問題:的push_back一個變量矢量

vector<int> vec1; 

for(int i = 1; i <= 100; i++) 
{ 
    vec1.push_back(i); 
    cout << vec1[i] << endl; 
} 

正如你可以看到,我想逼退可變到矢量VEC 1但輸出是:

5832900 
-319008141 
0 

等等

Process returned 0 (0x0) execution time : 0.210 s 
Press any key to continue. 

謝謝你的任何事。

+8

數組從0開始,而不是1.無論如何,'std :: iota'是一個很好的候選人。 – chris

+4

也是矢量。 –

+0

@ Code-Guru,Touche。 – chris

回答

3

你推動後面,但打印出項目[我],這是一個結束(我開始在你的循環中的一個)。

vector<int> vec1; 

for(int i = 0; i < 100; i++) 
{ 
    vec1.push_back(i+1); 
    cout << vec1[i] << endl; 
} 
1

您每打印一次矢量的末尾。這將是你的代碼的正確版本:

for(int i = 0; i < 100; i++) 
{ 
    vec1.push_back(i+1); 
    cout << vec1[i] << endl; 
}