私はC++を初めて使用します。経験豊富なコーダーがこれをどのように行うのか知りたいです。
私が持っているもの:
set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
s.insert(4);
s.insert(5);
for(set<int>::iterator itr = s.begin(); itr != s.end(); ++itr){
if (!(*itr % 2))
s.erase(itr);
}
そしてもちろん、それは機能しません。itrは、消去された後にインクリメントされるためです。セットから要素を消去した後、毎回Itrがセットの先頭を指す必要があるということですか?