vectorのコンテナについて質問があります。
vector<int> data;
vector<int>::iterator cur,end;

cur=data.begin();
end=data.end();

for(;cur!=end;++cur){
if(*cur==0)
data.erase(cur);
}

こんなことしたら、後続のイテレータが無効になるんですよね?
コンテナに登録されたもので値が0の奴を削除したいときは
どう工夫すればうまく削除できるでしょうか?