質問です。
std::vectorコンテナのリバースイテレータについてなのですが、
コンテナの内部をerase()で削除したいのですが、通常のイテレータと同じように行なえません。


std::vector<MyClass*> containerが宣言されてるとして、
for (std::vector<MyClass*>::reverse_iterator it = container.rbegin(); it != container.rend(); ++it){
container.erase(it);
}
上記のように行なうと、

エラー 1 error C2664: 'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<MyClass*>>>
std::vector<MyClass*,std::allocator<_Ty>>::erase(std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<MyClass*>>>,
std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<MyClass*>>>)' : 引数 1 を 'GameObject *' から
'std::_Vector_const_iterator<std::_Vector_val<std::_Simple_types<MyClass*>>>'
へ変換できません。

とエラーになります。

for (std::vector<MyClass*>::reverse_iterator it = container.rbegin(); it != container.rend(); ++it) ここを
for (std::vector<MyClass*>::iterator it = container.begin(); it != container.end(); ++it)
こうするとエラーは出なくなりますが、想定している動きになりません。

解決方法をご指導お願いします。