E.g.一類股有三個功能:C++遍歷一個列表來調用某個函數
class Unit{
void StandUp();
void SitDown();
void Die();
}
我有一個指針列表list<Unit*> UnitList;
當我想每個人都站起來:
void EveryoneStandUp(){
for(list<Unit*> it = UnitList.begin(); it != UnitList.eng(); it++){
(*it)->StandUp();
}
}
現在,如果我希望大家靜坐,我會複製上面的代碼並將StandUp()
更改爲SitDown()
。對於我寫的每一個新函數,如果我希望每個人都這樣做,我必須在我的代碼中有另一個for循環體。
是否有可能把這個for循環體放在另一個函數中,當我想從UnitList中的所有成員調用某個函數時,我可以重複使用它?
我覺得這個必須在其他地方有答案,我嘗試了谷歌搜索,但不知道我應該尋找哪些關鍵字。感謝您的回答!
http://www.cplusplus.com/reference/algorithm/for_each/ – Exceptyon
嘗試使用'的std :: for_each'。 – user3553031
和['std :: mem_fn'](http://en.cppreference.com/w/cpp/utility/functional/mem_fn) –