当前位置: 首页 > news >正文

社交网站开发项目计划报告搜索引擎的工作原理分为

社交网站开发项目计划报告,搜索引擎的工作原理分为,靖江做网站的单位,网站建设使用的什么软件有哪些方面bind bind 用来将可调用对象和参数一起进行绑定。可调用对象包括普通函数、全局函 数、静态函数、类静态函数甚至是类成员函数,参数包括普通参数和类成员。绑定后的 结果,可以使用 std::function 进行保存,并延迟调用到我们需要的时候。 绑…

bind

bind 用来将可调用对象和参数一起进行绑定。可调用对象包括普通函数、全局函
数、静态函数、类静态函数甚至是类成员函数,参数包括普通参数和类成员。绑定后的
结果,可以使用 std::function 进行保存,并延迟调用到我们需要的时候。

绑定普通函数与参数及占位

bind 绑定顺序,也就是函数中形参的声明顺序。
placeholders::_x 中的序列是实参的顺序。

# if 1
//bind
#include <iostream>
#include <functional>using namespace std;double myDivide (double x, double y)
{return x/y;
}
int main(){auto myFunc = bind(myDivide, 10, 2);cout << myFunc() << endl;auto myFunc1 = bind(myDivide, 10,placeholders::_1);cout << myFunc1(2) << endl;//placeholders::_1 占位符,表示第一个参数,2表示第二个参数auto myFunc2 = bind(myDivide, placeholders::_2,placeholders::_1);cout << myFunc2(10,2) << endl;auto myFunc3 = bind(myDivide, placeholders::_1,placeholders::_2);cout << myFunc3(10,2) << endl;return 0;
}输出
5
5
0.2
5
# endif

绑定对象与成员及占位

绑定对象及成员函数时,顺序是调用成员,对象,[参数]。成员,对象及参数不能
有缺位,缺位可用 placeholders::_x 来占位。否则编译不过。

// todo 类成员函数绑定#include <iostream>
#include <functional>
using namespace std;
struct A{int x;double y;
};class B{
public:
//    void func(){
//        cout << "B::func()" << endl;
//    }void func(int x,int y){cout << "void func(int x,int y)" << endl;cout << "x=" << x << " y=" << y << endl;}};
int main() {A a={1,2.5};// 绑定到对象a的成员变量xauto f = bind(&A::x, a); // 绑定到对象a的成员变量xcout << f() << endl; // 输出1//B b;//auto f1 = bind(&B::func, b); // 绑定到对象b的成员函数func//f1(); // 输出B::func()////    B b1;//    auto f2 = bind(&B::func, b1,10,20); // 绑定到对象b的成员函数func//    f2(); // 输出void func(int x,int y) x=10 y=20B b1;auto f2 = bind(&B::func, b1,placeholders::_1,placeholders::_2); // 绑定到对象b的成员函数funcf2(3,4);return 0;
}

函数重载情形下的绑定


#include <iostream>
#include <functional>
using namespace std;int add(int x, int y)
{cout<<"int add(int x, int y)"<<endl;return x + y;
}double add(double x, double y)
{cout<<"double add(double x, double y)"<<endl;return x + y;
}class MyPair
{
public:int add(int x, int y){cout<<"MyPair:: int add(int x, int y)"<<endl;return x + y;}double add(double x, double y){cout<<"MyPair:: double add(double x, double y)"<<endl;return x + y;}
};int main(){auto f1= bind( (int (*)(int x, int y))add, 1, 2);f1(); // 输出 int add(int x, int y)auto f2= bind( (double (*)(double x, double y))add, 1, 2);f2(); // 输出 double add(double x, double y)MyPair p;auto f3= bind( (int (MyPair::*)(int x, int y))&MyPair::add, p, 1, 2);f3(); // 输出 MyPair:: int add(int x, int y)MyPair p1;auto f4= bind( (double (MyPair::*)(double x, double y))&MyPair::add, p1, placeholders::_1, placeholders::_2);f4(2,3); // 输出 MyPair:: double add(double x, double y)return 0;
}

bind 语义

语义小结
(1)bind 预先绑定的参数需要传具体的变量或值进去,对于预先绑定的参数,是pass-by-value 的。(2)对于不事先绑定的参数,需要传 std::placeholders 进去,从_1 开始,依次
递增。placeholder 是 pass-by-reference 的。(3)bind 的返回值是可调用实体,可以直接赋给 std::function 对象。(4)对于绑定的指针、引用类型的参数,使用者需要保证在可调用实体调用之前,
这些参数是可用的。(5)类的 this 可以通过对象或者指针来绑定。

多态之 bind +fucntion

function 本是不可以包装类成员函数,但是 bind 的可以实现类成员函数的绑定,
然后赋给 fucntion 对象,亦即实现了间接性的包装。

//todo bind + function
#include <iostream>
#include <functional>
using namespace std;void foo()
{cout<<"void foo()"<<endl;
}
void func(int a)
{cout<<"void func(int a)"<<endl;
}class Foo
{
public:void method(){cout<<"Foo::void method()"<<endl;}void method2(string s){cout<<"Foo:void method2()"<<endl;}
};class Bar
{
public:void method3(int a ,string s){cout<<"Bar:void method3()"<<endl;}
};std::function<void(void)> f;int main()
{f=foo;f(); // 输出 void foo()f= bind(func,10);f(); // 输出 void func(int a)Foo foo;f= bind(&Foo::method,foo);f(); // 输出 Foo::void method()f = bind(&Foo::method2,foo,"hello");f(); // 输出 Foo:void method2()Bar bar;f= bind(&Bar::method3,bar,1,"world");f(); // 输出 Bar:void method3()return 0;
}
http://www.tj-hxxt.cn/news/61011.html

相关文章:

  • 什么叫网页什么叫网站班级优化大师官网
  • 深圳网站建设智能 乐云践新seo公司北京
  • 建设一个网站的具体步骤成都seo排名
  • 做校招的网站有哪些病毒式营销
  • 备案查询入口seo代理
  • 旅游网站的设计栏目互联网品牌营销公司
  • 有哪些专门做创意门头的网站搜索引擎优化包括哪些方面
  • 网站正在建设中...为什么护卫神新闻发稿平台有哪些
  • 网站开发计划书封面北京百度推广seo
  • 简述网站开发建设的基本流程企业网络营销策划案
  • 哪些人不适合学电子商务专业比优化更好的词是
  • 广州市白云区建设局 网站手机优化大师为什么扣钱
  • 个体经营可以建设网站吗关键词免费下载
  • 天河建设网站技术网站怎么优化关键词排名
  • 济南直销网站制作站长工具中文精品
  • 买源码做网站值吗自媒体平台注册官网下载
  • 怎么宣传自己的网站推广做网络营销推广
  • 如何推销网站建设网站优化方案
  • 网络公司网站建设服务代发广告平台
  • wordpress 写作工具c盘优化大师
  • 什么网站能看到专业的做面包视频网络推广哪个好
  • 帝国cms 制作网站地图百度搜索推广的五大优势
  • 微信广告朋友圈投放长沙自动seo
  • 个体工商户可以备案哪些网站互联网推广中心
  • 茂名百度搜索网站排名百度快照是怎么做上去的
  • 深圳网站建设企业百度快照查询入口
  • 网站维护细则杭州优化商务服务公司
  • 哪个网站可以做图交易平台今天最火的新闻头条
  • 南山附近公司做网站建设多少钱怎么做自媒体
  • 高端html5网站建设的思路seo网站推广