void reset(const std::string& a, const std::string& b) const
{
std::for_each(this->begin(), this->end(), [&](const std::string& a, const std::string& b, ClassA* cv)
{
if( cv->getA == a && cv->getb == b)
cv->reset();
});
}
有没有一种简单的方法可以将ClassA的成员函数与a和b与for_each进行比较?什么是最好的解决方案?
答案 0 :(得分:1)
将其设为[&](ClassA* cv){ ... }
。参数a
和b
由[&]
捕获,并且在lambda中可用(它们不作为参数传递)。
你也可以使用:
void reset(const std::string& a, const std::string& b) const {
for (auto cv : *this)
if(cv->getA == a && cv->getb == b)
cv->reset();
}
看起来有点干净。