现在,我有这个代码:
bool isAnyTrue() {
for(std::list< boost::shared_ptr<Foo> >::iterator i = mylist.begin(); i != mylist.end(); ++i) {
if( (*i)->isTrue() )
return true;
}
return false;
}
我在这里和之后都使用过 Boost,但我真的不记得有什么简单的方法来编写它,就像我可能会用 Python 编写它一样,例如:
def isAnyTrue():
return any(o.isTrue() for o in mylist)
STL/Boost 中是否有任何结构可以或多或少地像这样编写它?
或者可能相当于这个 Python 代码:
def isAnyTrue():
return any(map(mylist, lambda o: o.isTrue()))
大多数情况下,我想知道在 Boost / STL 中是否有任何现有的any
(和)等价物。all
或者为什么没有(因为它看起来很有用,而且我经常在 Python 中使用它)。