[過去ログ] 【初心者】スレを立てる前にココで質問を【Part27】 [転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
48(1): 2015/01/13(火)18:05 ID:zcAKajvM(1/3) AAS
質問です。
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)
こうするとエラーは出なくなりますが、想定している動きになりません。
解決方法をご指導お願いします。
上下前次1-新書関写板覧索設栞歴
あと 954 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.010s