C++相談室 part87
■ このスレッドは過去ログ倉庫に格納されています
0356デフォルトの名無しさん
2010/12/22(水) 15:43:29規格はしらんけど普通に考えて取りなおさないとダメだと思う
vectorがリリース時にend()で返すのは一般的な実装なら生ポインタ
ということはループ回すときにサイズが縮んで終端が移動したらendは無効なイテレーターになる
だからループで回すなら
while(cur != end) if(*cur == 0) { cur = erase(cur); end = data.end(); } else ++cur;
こうしたほうが安心できるね
まあ削除するだけなら普通はremove&eraseパターンだけど
■ このスレッドは過去ログ倉庫に格納されています