所以我有这个载体:
vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait;
我想搜索一下那些真实的,我怎么能这样做,就是这样。
任何建议我都考虑过boost :: phoenix但不确定它是如何工作的,任何想法。
感谢。
答案 0 :(得分:3)
像这样std::find_if(wait.begin(),wait.end(),istruetuple)
......
答案 1 :(得分:0)
由于您刚刚开始,这里有一些示例代码(我不使用您正在使用的编译器,但如果您有C ++ 11支持,则可以使用auto
,基于范围等。 ):
typedef vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> >::iterator vec_iter;
for (vec_iter i = wait.begin(); i != wait.end(); ++i)
{
if (boost::get<3>(*i) == true)
{
// This tuple has true in it, so do something
}
}
C ++ 11版本:
for (auto& i : wait)
{
if (boost::get<3>(i) == true)
{
// Do stuff
}
}