所以我有這樣的載體:搜索提升的載體::元組
vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait;
我要搜索如果有在他們真正的那些,我怎麼能做到這一點,僅此而已。
任何建議我已經看到了boost :: phoenix,但並不確定它是如何工作的,任何想法。
謝謝。
所以我有這樣的載體:搜索提升的載體::元組
vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait;
我要搜索如果有在他們真正的那些,我怎麼能做到這一點,僅此而已。
任何建議我已經看到了boost :: phoenix,但並不確定它是如何工作的,任何想法。
謝謝。
既然你是剛剛開始關閉,這裏是一些示例代碼(我不知道你使用的編譯器,但你可以使用auto
等。如果你有C++ 11的支持):
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
}
}
事情是這樣的...... std::find_if(wait.begin(),wait.end(),istruetuple)
嗯非常好可能,但什麼是istruetuple? – 2012-07-19 07:43:56
將元組引用爲參數並在其爲true時返回true的函數。如果你使用C++ 11,可能是lambda。 – 2012-07-19 07:45:18
我不知道什麼是C++中的lambda,我剛剛開始,讓我檢查一下,如果我想只在一行中得到它? (: – 2012-07-19 07:49:25
很酷謝謝,我使用g ++自帶netbeans 7.2 – 2012-07-19 08:17:06
@ user1423656:如果在屬性中添加「-std = C++ 11」,則應該可以使用C++ 11版本。 – 2012-07-19 08:19:41