お前らが知ったかぶりばかりなのが分かった。
別にdelete前にnullチェックするのは悪いことではないし、
newと対になってないdeleteとかも指摘としては噴飯もの。
まああえて言えばdelete後にnull代入しておくべきだが。

問題はforeachでautoになってるところだろ。
これだとvector内の要素ではなく、そのコピーに対して操作してることになる。
明らかに意図していない動作だろう。