2016年5月30日月曜日

std vector の For loop 中での削除

VectorのEraseを使い、条件に合ったものを削除するプログラムを書いたのですが、途中でハマってしまった。考えてみると馬鹿なのだが、ちょっとしたことなので記録。

サンプルのコードは以下
for ( ; it != data.end(); ) {
  if (condition) {
    it = data.erase(it);
  } else {
    ++it;
  }
}

馬鹿のことは、data.eraseの前の "it ="を忘れてエラーを出しまくってしまった。









0 件のコメント:

コメントを投稿