我有這樣的結構。作爲謂詞的成員函數比較
struct A
{
int someFun() const;
int _value;
};
我將此結構的對象存儲在一個向量中。
如何找到其成員
someFun()
回報42
對象?如何找到
_value
爲42
的對象?
我想我必須使用的bind
和equal_to
的組合,但我無法找到正確的語法。
vector<A> va;
vector<A>::const_iterator val = find_if(va.begin(),va.end(),boost::bind(???,42));
編輯:
感謝。但還有一個疑問。
如果我有vector<A*>
或vector<boost::shared_ptr<A> >
怎麼辦?
你有C++ 0x嗎?拉姆達將是最可讀的解決方案。 –
@Kerrek Nope。 :( – balki
使用Boost.Lambda或Boost.Phoenix。或者只是定義一個函數/函子。 – kennytm