リバースイテレータで消去すると何か問題はありますか?以下のコードをコンパイルすると、erase()
の引数として 'rit'を使用すると、「一致する関数がありません」というエラーが表示されます。イテレータを逆イテレータとして使用できますか?
std::vector<MyRecord*>* BLV = GetVector;
for (std::vector<MyRecord*>::iterator it = BLV->begin(); it != BLV->end(); ++it)
BLV->erase(it);
for (std::vector<MyRecord*>::reverse_iterator rit = BLV->rbegin(); rit != BLV->rend(); ++rit)
BLV->erase(rit);
[mcve]を作成して、あなたの質問を読んでいる人が何度も何度も何度もやらなければならないわけではありません。 – nwp
@nwp私は「間違っている」と尋ねましたが、MWEを実行するのではなく、慎重に読むだけでよいと思いました。 – katang