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

网站建设工期外贸网站建站和推广

网站建设工期,外贸网站建站和推广,国际设计网,重庆怎么在网站上做广告C11中的bind: bind (Fn&& fn, Args&&... args); 官方文档对于bind接口的概述解释:Bind function arguments 我们可以将bind接口看做是一个通用的函数适配器,他接受一个函数对象,以及函数的各项参数&#xff0c…
C++11中的bind:
bind (Fn&& fn, Args&&... args);

官方文档对于bind接口的概述解释:Bind function arguments 

我们可以将bind接口看做是一个通用的函数适配器,他接受一个函数对象,以及函数的各项参数,然后返回一个新的函数对象,但是这个函数对象的参数已经被绑定为设置的参数。运行的时候相当于总是调用传入固定参数的原函数。

但是如果进行绑定的时候,给与的参数为 'std::placeholders::_1,_2...’ 则相当于为新适配生成的函数对象的调用预留一个参数进行传递。 

#include <iostream>
#include <functional>
#include <unistd.h>
class Test {
public:Test() { std::cout << "构造" << std::endl; }~Test() { std::cout << "析构" << std::endl; }
};void del(const Test *t, int num) {std::cout << num << std::endl;delete t;
}int main()
{Test *t = new Test;/*bind作⽤也可以简单理解为给⼀个函数绑定好参数,然后返回⼀个参数已经设定好或者预留好的函数,可以在合适的时候进⾏调⽤*//*⽐如,del函数,要求有两个参数,⼀个Test*, ⼀个int,⽽这⾥,想要基于del函数,适配⽣成⼀个新的函数,这个函数固定第1个参数传递t变量,第⼆个参数预留出来,在调⽤的时候进⾏设置*/std::function<void(int)> cb = std::bind(del, t, std::placeholders::_1);cb(10); while(1) sleep(1);return 0;
}

终端运行结果: 

[dev@localhost example]$ g++ -std=c++11 bind.cpp -o bind
[dev@localhost example]$ ./bind 
构造
10
析构^C

基于bind的作用,当我们在设计⼀些线程池,或者任务池的时候,就可以将将任务池中的任务设置为函数类型,函数的参数由添加任务者直接使用bind进行适配绑定设置,而任务池中的任务被处理,只需要取出⼀个个的函数进行执行即可。

这样做有个好处就是,这种任务池在设计的时候,不用考虑都有哪些任务处理方式了,处理函数该如何设计,有多少个什么样的参数,这些都不用考虑了,降低了代码之间的耦合度。
#include <iostream>
#include <string>
#include <vector>
#include <functional>void print(const std::string &str) {std::cout << str << std::endl;
}
int main()
{using Functor = std::function<void()>;std::vector<Functor> task_pool;task_pool.push_back(std::bind(print, "张三"));task_pool.push_back(std::bind(print, "你好"));task_pool.push_back(std::bind(print, "我是"));task_pool.push_back(std::bind(print, "好学⽣"));for (auto &functor : task_pool) {functor();}return 0;
}

终端操作及结果: 

[dev@localhost example]$ g++ -std=c++11 bind.cpp -o bind
[dev@localhost example]$ ./bind 
张三
你好
我是
好学⽣
[dev@localhost example]$

本篇文章介绍了c++11std::bind函数的相关使用,以及它对于后面我们项目里边实现任务池线程池的重要性。欢迎留言交流!

http://www.dtcms.com/wzjs/340591.html

相关文章:

  • 06628 网页制作与网站开发百度大盘指数
  • 苏州疫情开始时间河南网站建设优化技术
  • 安陆市网站seo优化有百度系和什么
  • 怎么做网站旅游宣传seo网站优化方案案例
  • 单页面网站制作sem搜索引擎营销是什么
  • 除wordpress关键词优化排名软件推荐
  • 做网站需要什么文件备案域名
  • 中济建设官方网站网络营销模式有哪几种
  • 制作公司网站怎样收费销售找客户的app
  • 网易企业邮箱电话人工服务太原整站优化排名外包
  • 双井做网站的公司免费的网络推广有哪些
  • 怎么做自己的代刷网站公司网站如何在百度上能搜索到
  • 专业做影楼招聘网站有哪些seo外链要做些什么
  • 做高防鞋 哪个网站能上架网络服务器地址怎么查
  • 想在微信公众号上做网站链接查淘宝关键词排名软件有哪些
  • dreamweaver如何做网站win10一键优化工具
  • 四川省政府采购网招标官网搜索关键词排名优化
  • 有没有做语文题的网站百度官方app下载
  • 做电话销售需要的网站什么平台引流最快
  • 江苏五星建设集团有限公司网站百度seo学院
  • 广西南宁做网站windows优化大师绿色版
  • 重庆网站建设招聘信息网站里的友情链接
  • 企业级网站开发原理图seo云优化外包
  • wordpress主题虚拟资源交易平台武汉seo网站优化
  • 优质手机网站建设哪家好上海牛巨微seo关键词优化
  • 网件路由器推荐泉州百度关键词优化
  • h5手机网站源码下载国内免费建站平台
  • 网站建设行业论坛seoyoon
  • 珠海市住房和城乡建设厅网站福州百度推广开户
  • android软件开发工程师windows优化大师手机版