1

STLの学習を始めたばかりで、最初の問題は次のとおりです。

  vector<int> vec1;

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

ご覧のとおり、変数iをベクトルvec1にプッシュバックしたいのですが、出力は次のとおりです。

5832900
-319008141
0

等...

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

ありがとうございます。

4

2 に答える 2

3

あなたは背中を押していますが、最後を過ぎたアイテム[i]を印刷しています(私はあなたのループの1つから始まります)。

vector<int> vec1;

for(int i = 0; i < 100; i++)
{
    vec1.push_back(i+1);
    cout << vec1[i] << endl;
}
于 2012-10-29T20:41:57.750 に答える
1

毎回ベクトルの終わりを超えて1つ印刷しています。これはあなたのコードの正しいバージョンです:

for(int i = 0; i < 100; i++)
{
    vec1.push_back(i+1);
    cout << vec1[i] << endl;
}
于 2012-10-29T20:42:41.603 に答える