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

始めたばかりなので、ここにいくつかのサンプルコードを示します (使用しているコンパイラはわかりませんが、autoC++11 をサポートしている場合は、範囲ベースの 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 に答える