bind()函数理解(C++11)

C++11之前使用的binder1st、binder2nd、bind1st、bind2nd,在C++11中将合并为bind(),使用时需要引用#include,bind()可以绑定函数(function)、函数对象(function object)、成员函数(member function)、成员对象(member object),其中在绑定成员函数和成员对象时,必须是对象的地址。bind()函数的好处是,在一些需要后期使用时才输入参数的函数很有帮助。

#include

using namespace std:placeholder;//引进占位符

double my_Divide(double x,double y) {   return x/y;  }   //function

typedef  struct  my_Pair   //member funtion

{

   double a,b;

  double multiply() { return a*b; }

};

//绑定函数(binding function)

auto fn_five1=bind(my_Divide,10,2);

std::cout<

auto fn_five2=bind(my_Divide,_1,2);

std::cout<

auto fn_five3=bind(my_Divide,_1,_2);

std::cout<

auto fn_five4=bind(my_Divide,_2,_1);

std::cout<

auto fn_five5=bind(my_Divide,10,3);

std::cout<


//绑定成员函数(member function)

my_Pair   ten_two {10,2};

auto mul1=bind(&my_Pair::multiply,_1);

std::cout<

auto mul2=bind(&my_Pair::a,ten_two);

std::cout<

auto mul3=bind(&my_Pair::b,_1);

std::cout<

你可能感兴趣的:(bind()函数理解(C++11))