イテレータを使用して、セットのすべてのメンバーを出力しようとしています。他のスタックオーバーフローの回答からわかる限り、正しいフォーマットを使用しています。このコードを実行すると、myset のサイズが 3 であることが正しく出力されますが、ii は 1 回しか出力されません。*iter を使用して行のコメントを外すと、Visual Studio は実行時例外をスローし、「マップ/セット イテレーターは参照解除できません。理由はありますか?
int main()
{
set<int> myset;
myset.insert(5);
myset.insert(6);
myset.insert(7);
set<int>::iterator iter;
cout<<myset.size()<<endl;
int ii=0;
for(iter=myset.begin(); iter!=myset.end();++iter);{
//cout<<(*iter)<<endl;
ii+=1;
cout<<ii<<endl;
}
return 0;
}