您的位置:首页 > 其它

boost::bind入门函数

2010-04-21 01:32 337 查看
// boost_test.cpp : 定义控制台应用程序的入口点。

//附加包含 $(BOOST_ROOT)

//无需附加库:
//使用boost库不需要在工程设置中显式的指定库名字,
//而是由boost自身来完成这个设定的。
//由于boost库跨平台并且支持多个编译环境,
//因此这个被链接库文件的文件名是根据当前编译的配置动态生成的。

//动态链接配置的功能是由boost/config/auto_link.hpp统一实现的。

//在这个文件开头的注释里详细说明了使用方式,相信这种方式对我们自己的库开发也很有裨益。

//这里提到了名称的构造公式:

//BOOST_LIB_PREFIX
// + BOOST_LIB_NAME
// + "_"
// + BOOST_LIB_TOOLSET
// + BOOST_LIB_THREAD_OPT
// + BOOST_LIB_RT_OPT
// "-"
// + BOOST_LIB_VERSION

#include "stdafx.h"
#include <algorithm>
#include <vector>
#include <boost/bind.hpp>
#include <iostream>

class A
{
public:
    A(int i): id(i), idd(i+1){}
    int getid(void){return id;}
private:
    int id;
public:
    int idd;
};



int _tmain(int argc, _TCHAR* argv[])
{
    using namespace std;
    using namespace boost;
    vector<A> v;
    for (int i = 0; i < 100; i++)
    {
         A a = A(i);
        v.push_back(a);
     }
    vector<A>::iterator it = find_if(v.begin(),v.end(),((bind(&A::getid,_1)==10)&&(bind(&A::idd,_1)==11)));
    if (it == v.end())
    {
         cout << "ERROR" << endl;
     }
    else
    {
        cout << it->getid() << endl;
    }

    return 0;
    }

//返回值:10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: