これは、編集されたコードイテレータをコピーせずにメモリリークを起こさずにSTLベクタの要素を消去する方法は?
vector<vector<int> > vec; vector<vector<int> >::iterator vit; vector<int>::iterator it; for (vit = vec.begin(); vit != vec.end(); ++vit) { it = vit->begin(); while(it != vit->end()) { while(it != vit->end()) { if(condition) { while(condition) { //going back to certain it //erase an element it = vit->erase(it); } } else ++it; } ++it; } }
内側ながらバックある点にループです。リンクがありません。 イテレータをコピーせずに、バックループでメモリリークのない要素を消去し、再度転送しますか?
'ながら(これ< vit->端()) ' - これはすでにバグあります。 – IInspectable
[ループしている間に要素をベクターから削除するにはどうすればいいですか?](http://stackoverflow.com/questions/8597240/how-to-delete-an-element-from-a-vector-while- looping-over-it) – Pixelchemist