これはC++アドベントカレンダー2014の8日目の記事です。 ゲームの修羅場10に投稿した記事で「プログラムの落ちるポイント」の中で 4つほどポイントを紹介したのですが、その中の一つがイテレータ破壊です。 これは、ややこしいので、本の方では軽く触れるだけで終わったのですが、 今回、あたらめて紹介したいと思います。 vectorやmapというコンテナを使う機会は多いのですが、 知らず知らずのうちに破壊されたイテレータを使っていることがあります。 まずイテレータ破壊について簡単に書きます。 こういうソースがイテレータ破壊の例となります。 vectorの場合、要素の数が変わるpush_backやpop_backを使った場合、 それまでに確保していたイテレータが破壊されます。 dequeやlistを使うとイテレータ破壊に関しては起きにくくなります。 dequeを使えば、push_back,pop_
