zoukankan      html  css  js  c++  java
  • std::bind

    bind函数看作是一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来“适应”原对象的参数列表。
    void fun(int x,int y,int z)
    {
        cout<<x<<"  "<<y<<"  "<<z<<endl;
    }  
    void fun_2(int &a,int &b) { a++; b++; cout<<a<<" "<<b<<endl; } 1、绑定函数fun的第一,二,三个参数值为: 1 2 3 auto f1 = std::bind(fun,1,2,3); f1();//print:1 2 3 2、绑定函数 fun 的第三个参数为3,而fun的第一,二个参数由调用f2指定 auto f2 = std::bind(fun, placeholders::_1, placeholders::_2, 3); f2(1,2);//print:1 2 3 3、绑定函数 fun 的第三个参数为 3,而fun 的第一,二个参数分别由调用 f3 的第二,一个参数指定 auto f3 = std::bind(fun,placeholders::_2,placeholders::_1,3); f3(1,2);//print:2 1 3 4、绑定fun_2的第一个参数为n, fun_2的第二个参数由调用f4的第一个参数(_1)指定。 int n = 2; int m = 3; auto f4 = std::bind(fun_2, n,placeholders::_1); //bind(fun_2, 2, 3) f4(m); //print:3 4
    std::bind(fun_2, std::placeholders::_1, std::placeholders::_2)(1, 2); //输出 1 2
    std::bind(fun_2, std::placeholders::_2, std::placeholders::_1)(1, 2); //输出 2 1
    5、绑定类的成员函数 A a; auto f5 = std::bind(&A::fun_3, a,placeholders::_1,placeholders::_2); std::function<void(int,int)> fc = std::bind(&A::fun_3, a,std::placeholders::_1,std::placeholders::_2);
    f5(10,20);//调用a.fun_3(10,20),print:10 20
  • 相关阅读:
    第6课.内联函数分析
    第5课.引用的本质分析
    第4课.布尔类型和引用
    第3课.进化后的const
    第2课.C到C++的升级
    c语言深度解剖(笔记)
    你必须知道的495个c语言问题(笔记)
    JS弹出框
    车牌号正则表达式
    input输入文字后背景色变成了黄色 CSS改变(去掉黄色背景)
  • 原文地址:https://www.cnblogs.com/osbreak/p/10080516.html
Copyright © 2011-2022 走看看