標準ライブラリList使用上の注意

427 ワード

Listは遍歴中に注意する必要がある:
*iterはBullet*を指し、eraseを使用した後にiterに割り当てる必要があります.そうしないとvector iterators incompatibleエラーが発生します.
for(std::list<Bullet*>::iterator iter = m_list.begin(); ;)

{

               if(!(*iter)->IsOutSides())

               {

		(*iter)->Render();

		iter++;

	}

	else

	{

		iter = m_list.erase(iter);

	}



	if(m_list.size() <= 0 || iter == m_list.end())

		break;

}