>>349
規格はしらんけど普通に考えて取りなおさないとダメだと思う
vectorがリリース時にend()で返すのは一般的な実装なら生ポインタ
ということはループ回すときにサイズが縮んで終端が移動したらendは無効なイテレーターになる
だからループで回すなら
while(cur != end) if(*cur == 0) { cur = erase(cur); end = data.end(); } else ++cur;
こうしたほうが安心できるね
まあ削除するだけなら普通はremove&eraseパターンだけど