1

なぜこれが私にとってうまくいくのですか:

 for(int i = 0; i < vec.size(); i++)
    {
        os << vec[i] << " ";
    }

これはしませんが:

 for(vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
    {
        os << vec[*it] << " ";
    }
4

2 に答える 2

10

*itインデックスとして使用する代わりに印刷する必要があり、おそらく条件をに変更する必要がありますit != vec.end()

于 2012-08-13T17:37:14.920 に答える
5

イテレータを間違って使用しています。次のようになります。

for(vector<int>::iterator it = vec.begin(); it < vec.end(); it++)
{
    os << *it << " ";
}

あなたのコードはインデックスで要素を出力しようとするだけで*it、それは有効ではないかもしれません。

于 2012-08-13T17:37:29.973 に答える