Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ boost::tuple的搜索向量_C++_Boost_Vector_Tuples - Fatal编程技术网

C++ boost::tuple的搜索向量

C++ boost::tuple的搜索向量,c++,boost,vector,tuples,C++,Boost,Vector,Tuples,我有一个向量: vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait; 向量等待; 我想寻找那些有真实性的,我怎么做,就这样 我已经研究过boost::phoenix的任何建议,但不确定它是如何工作的,有什么想法 谢谢。类似这样的东西std::find_if(wait.begin(),wait.end(),istruetuple)。类似这样的东西std::find_if(wait.

我有一个向量:

  vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait;
向量等待;
我想寻找那些有真实性的,我怎么做,就这样

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


谢谢。

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

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

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

typedef向量::迭代器向量;
for(vec_iter i=wait.begin();i!=wait.end();++i)
{
if(boost::get(*i)==true)
{
//这个元组中有true,所以做点什么吧
}
}
C++11版本:

for (auto& i : wait)
{
    if (boost::get<3>(i) == true)
    {
        // Do stuff
    }
}
for(自动&i:等待)
{
if(boost::get(i)==true)
{
//做事
}
}

由于您刚刚起步,下面是一些示例代码(我不知道您使用的是什么编译器,但如果您支持C++11,您可以使用
auto
、基于范围的for等):

typedef向量::迭代器向量;
for(vec_iter i=wait.begin();i!=wait.end();++i)
{
if(boost::get(*i)==true)
{
//这个元组中有true,所以做点什么吧
}
}
C++11版本:

for (auto& i : wait)
{
    if (boost::get<3>(i) == true)
    {
        // Do stuff
    }
}
for(自动&i:等待)
{
if(boost::get(i)==true)
{
//做事
}
}

HMMIT可能是,但是什么是ExtruueTuffor?一个引用元组作为参数并返回true的函数,如果你在C++ 11上,可能是lambda。我不知道C++中的lambda是什么,我只是开始,让我检查一下,如果我只想在一行中得到它?(:为什么把整件事放在一行中如此重要?编写你的函数或函子,当你使用它时,它仍然只有一行(即,调用
find\u if
)这不是关键的,我只是喜欢更多,看起来很好,但是什么是ExtruueUpple?一个引用元组作为参数并返回真的函数。如果你在C++ 11上,可能是lambda。我不知道C++中的lambda是什么,我只是开始,让我检查一下,如果我只想在一行中得到它?(:为什么把整件事放在一行中如此重要?编写你的函数或函子,当你使用它时,它仍然只有一行(即,调用
find\u if
).不是很重要,我只是更喜欢,看起来neater@user1423656:如果在属性中添加
-std=c++11
,则应该能够使用c++11版本。@用户1423656:如果在属性中添加
-std=c++11
,则应该能够使用c++11版本。