一部のクラスでは、hash_set
次のポインターがあります。
std::hash_set<GameObject*> gameObjects;
それらすべてを繰り返し処理し、更新を呼び出したいと思います。イテレータを使用すると、次のようになります。
for(std::hash_set<GameObject*>::iterator it = gameObjects.begin(), it_end = gameObjects.end(); it != it_end; ++it)
{
(*it)->update();
}
これはコードが多すぎます。使いたいですstd::for_each
。
だけhash_set<GameObject>
だとすると、これは次のようになります。
std::for_each(gameObjects.begin(), gameObjects.end(), std::mem_fun_ref(&GameObject::update));
または、更新がパラメーターを期待していた場合、
std::for_each(gameObjects.begin(), gameObject.end(), std::bind2nd(std::mem_fun_ref(&GameObject::update), deltaTime));
hash_set
これらの両方の式は、ポインターの をどのように探しますか?
MS VisualStudio 2010 を使用しています。