之前写查找一个VECTOR中保存的一个结构的时候,知道其中的一个数据成员,每次都是遍历一遍,写久了觉得好麻烦,觉得不应该是这样才对。果真在网上找到了这个方法:
用boost::bind,非常简单:
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用法