之前寫查找一個(gè)VECTOR中保存的一個(gè)結(jié)構(gòu)的時(shí)候,知道其中的一個(gè)數(shù)據(jù)成員,每次都是遍歷一遍,寫久了覺(jué)得好麻煩,覺(jué)得不應(yīng)該是這樣才對(duì)。果真在網(wǎng)上找到了這個(gè)方法:
用boost::bind,非常簡(jiǎn)單:
find_if(v.begin(),v.end(),bind(&A::id,_1)==25);
如果需要,下面是完整示例代碼:
#include <algorithm>
#include <vector>
#include <boost/bind.hpp>
struct A
{
int id;
};
int main()
{
using namespace std;
using namespace boost;
vector <A> v;
find_if(v.begin(),v.end(),bind(&A::id,_1)==25);
}
//bind用法