ホテルを管理するクラスのプログラムを作成しています。私は顧客を部屋に入れて首尾よくチェックインすることができます。しかし、部屋から顧客をチェックアウトしようとすると、ランタイムエラーが発生します。つまり、ベクトルイテレータは互換性がありません。私はデバッガを走らせ、問題は私のwhileループの条件ステートメントにあると言いますが、問題が何であるか把握できません(私はデバッガを正しく使ったと思います)。私はこのようなエラーで他の投稿を見てみましたが、解決策を見つけることができませんでした。誰も助けることができますか? erase
操作が行われた後エラーを取得中:ベクトルイテレータが互換性がありません
void Customer::removeRoomID(int rID)
{
vector<int>::iterator iter;
iter = roomsCheckedInto.begin();
while(iter != roomsCheckedInto.end()) // <--DEBUGGER SAYS ERROR IN THIS LINE - ERROR: VECTOR ITERATOR INCOMPATIBLE
{
if(*iter==rID)
{
roomsCheckedInto.erase(iter);
}
}
}
[イレーズ削除イディオム](http://en.wikipedia.org/wiki/Erase-remove_idiom)をお勧めします。 –