0
我正在學習STL,然後我想「我會製作一個2D陣列!」但無論...2d帶有錯誤值的矢量
編碼這樣的:
vector< vector<int> > vetor;
vetor.resize(10);
vetor[0].resize(10);
for(int i = 0; i < vetor.capacity(); i++){
for(int h = 0; h < vetor[0].capacity();h++){
vetor[i][h] = h;
}
}
直到這裏,好嗎。但是當我嘗試以顯示陣列值使用此:
for(int i = 0; i < vetor.capacity(); i++){
cout << "LINE " << i << ": ";
for(int h = 0; h < vetor[0].capacity();h++){
cout << vetor[i][h] <<" ";
}
cout << "\n";
}
而且結果是真的錯了:
LINE 0: 4 5 6 7 8 9 6 7 8 9
LINE 1: 0 1 2 3 0 1 2 3 0 1
LINE 2: 0 1 2 3 0 1 2 3 0 1
LINE 3: 0 1 2 3 0 1 2 3 0 1
LINE 4: 0 1 2 3 0 1 2 3 0 1
LINE 5: 0 1 2 3 0 1 2 3 0 1
LINE 6: 0 1 2 3 0 1 2 3 0 1
LINE 7: 0 1 2 3 0 1 2 3 0 1
LINE 8: 0 1 2 3 0 1 2 3 4 5
LINE 9: 0 1 2 3 4 5 6 7 8 9
發生了什麼事與我的計劃?它沒有打印正確的值!
除了這個,他需要數到'尺寸()',不'capacity()',儘管在這種情況下,它們可能是相同的。 – 2012-03-20 23:22:47
或更好的:'std :: array <10,std :: array <10, int>>' – 2012-03-20 23:23:38
但我在調整vetor.resize(x)和vetor [0] .resize(y)時要做什麼? 在哪裏我可以看到一個可見的例子? – 2012-03-20 23:24:45