vectorのerase
gccバージョン4.2.4とVisualStudio2005とではstl::vectorのeraseメソッドの挙動が違う…
具体的には
vector<int> a;
a.push_back(10);
a.push_back(0);
a.push_back(11);
a.push_back(0);
a.push_back(12);
a.push_back(0);
vector<int>::iterator ite = a.begin();
while( ite != a.end() ){
if( (*ite) == 0 ){
a.erase(ite);
}else{
ite++;
}
}とやってもgccの方では期待する結果が得られるけど,VisualStudio2005だと…ダメでした。