所以我有这个向量:
vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait;
我想寻找那些在其中具有真实性的东西,我该怎么做,就是这样。
我研究过 boost::phoenix 但不确定它是如何工作的任何建议,任何想法。
谢谢。
像这样的东西std::find_if(wait.begin(),wait.end(),istruetuple)
...
由于您刚刚开始,这里有一些示例代码(我不知道您使用的是什么编译器,但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
}
}