私はSTLを勉強しています。 [OK]を、ここまで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()'は、この例ではおそらく同じでしょう。 –
以上: 'std :: array <10、std :: array <10, int>>' –
ですが、vetor.resize(x)とvetor [0] .resize(y)のサイズを変更するときに何をしていますか? ここで私は目に見える例を見ることができますか? –