0

所以我有这个向量:

  vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait;

我想寻找那些在其中具有真实性的东西,我该怎么做,就是这样。

我研究过 boost::phoenix 但不确定它是如何工作的任何建议,任何想法。

谢谢。

4

2 回答 2

3

像这样的东西std::find_if(wait.begin(),wait.end(),istruetuple)...

于 2012-07-19T07:41:37.257 回答
0

由于您刚刚开始,这里有一些示例代码(我不知道您使用的是什么编译器,但auto如果您支持 C++11,您可以使用 , range-based for 等):

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
    }
}
于 2012-07-19T08:02:00.307 回答