イテレータ無効化ルール イテレータは容易に無効化されます。 Iterator Invalidation Rules (C++0x) 例えばvectorはコンテナサイズよりも要素が増えた場合、要素が取り除かれた場合にイテレータは無効化されます。 なので、基本的にイテレータが無効化される操作とされない操作を明確に分離して考える事で危険を減らすと良いと思います。 const性とイテレータ無効化ルール const vectorは一切の変更を認めませんが、イテレータ無効化ルールは要素の増減が無ければ変更を許します。 const vectorは変更をコンパイルエラーにしてくれますが、イテレータ無効化ルールは要素の増減に対してエラーを出してくれません。 そこで、イテレータ無効化を避ける方法としてSTLのalgorithmを使います。 algorithmは明示的に破壊しなければイテレーション中にイテレータ