我有下面的代碼使用for循環,我想使用變換,或者至少是for_each,但我看不到如何。容器的boost ::函數對象的STL算法
typedef std::list<boost::function<void(void) > CallbackList;
CallbackList callbacks_;
//...
for(OptionsMap::const_iterator itr = options.begin(); itr != options.end(); ++itr)
{
callbacks_.push_back(boost::bind(&ClassOutput::write_option_,this,*itr));
}
後來在代碼中,我實際上想調用這個nullary函數對象的集合。我在這裏也使用了for循環,似乎我應該可以以某種方式使用for_each。
for(CallbackList::iterator itr = callbacks_.begin(); itr != callbacks_.end(); ++itr)
{
(*itr)();
}
這一個變化的作品。 operator()的參數應該是OptionsMap :: value_type。謝謝。 – 2010-01-04 19:33:28
修復它(15個字符)。 – 2010-01-04 20:18:58