2011-06-23 5 views

答えて

0

イテレータを初期化する必要があります。

set<int>::iterator itr = kk.end(); 
1

試してみてください。

set<int>::iterator itr = kk.begin(); 

または完全にitrを削除:この例では

copy(v.begin(), v.end(), inserter(kk, kk.begin())); 

、あなたは可能性があり、単にあなたがitrを初期化していない

copy(v.begin(), v.end(),inserter(kk, kk.end())); 
            // ^^^^^^^^ You need a real iterator. 
20

これkkを初期化する(ただし、にしたい場合は、上記の行をたどるkkに追加):

set<int> kk(v.begin(), v.end()); 
10

目標はにある場合は、ベクトル要素からセットを作成します(というよりも、その既存のセットを更新いくつかの要素が含まれている可能性があります)、コンストラクタを使用してそれを行います。

set<int> s(v.begin(), v.end());