在某些類的容器的for_each我有一個指針hash_set
:的std ::指針上
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
您正在使用哪種編譯器?有多少C++ 11可用? – jalf