だから私はこのベクトルを持っています:
vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait;
そして、それらに真実があるものを探したいのですが、どうすればそれができるのでしょうか。それだけです。
私がboost::phoenixを調べた提案はありますが、それがどのように機能するか、アイデアはよくわかりません。
ありがとう。
このようなものstd::find_if(wait.begin(),wait.end(),istruetuple)
...
始めたばかりなので、ここにいくつかのサンプルコードを示します (使用しているコンパイラはわかりませんが、auto
C++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
}
}