2012-07-19 17 views
0

所以我有這樣的載體:搜索提升的載體::元組

vector<boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> > wait; 

我要搜索如果有在他們真正的那些,我怎麼能做到這一點,僅此而已。

任何建議我已經看到了boost :: phoenix,但並不確定它是如何工作的,任何想法。

謝謝。

回答

0

既然你是剛剛開始關閉,這裏是一些示例代碼(我不知道你使用的編譯器,但你可以使用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 
    } 
} 
+0

很酷謝謝,我使用g ++自帶netbeans 7.2 – 2012-07-19 08:17:06

+0

@ user1423656:如果在屬性中添加「-std = C++ 11」,則應該可以使用C++ 11版本。 – 2012-07-19 08:19:41

3
,範圍爲基礎的

事情是這樣的...... std::find_if(wait.begin(),wait.end(),istruetuple)

+0

嗯非常好可能,但什麼是istruetuple? – 2012-07-19 07:43:56

+0

將元組引用爲參數並在其爲true時返回true的函數。如果你使用C++ 11,可能是lambda。 – 2012-07-19 07:45:18

+0

我不知道什麼是C++中的lambda,我剛剛開始,讓我檢查一下,如果我想只在一行中得到它? (: – 2012-07-19 07:49:25