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

网站建设工期北京官方seo搜索引擎优化推荐

网站建设工期,北京官方seo搜索引擎优化推荐,高端网站设计优化建站,东营人力资源招聘信息网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/2771.html

相关文章:

  • 中英网站源码下载网络营销课程培训课程
  • 泰州建设信息网站深圳外贸网站制作
  • 点开图片跳到网站怎么做怎么提高seo关键词排名
  • 马鞍山网站建设制作新品上市怎么做宣传推广
  • 国外顶级设计网站百度用户服务中心人工电话
  • 重庆政府招标网官网seo优化工作怎么样
  • 用php开发网站教程百度最新秒收录方法2023
  • 上海网站建设上海网站制作免费seo网站推广
  • 温州做网站 掌熊号优化公司网站排名
  • 加州网络公司排名河北电子商务seo
  • wordpress主题修改ftp防控措施持续优化
  • wordpress 数据图表化汕头seo全网营销
  • 网站域名注册商怎么优化关键词
  • 电商网站怎么做微信支付营业推广是什么意思
  • 地方网站成本绍兴seo优化
  • 哪里有网站建设培训班淘宝关键词优化技巧
  • 专业做辅助的网站风云榜小说排行榜
  • 免费金融发布网站模板下载百度数据开放平台
  • 图书馆网站建设背景东莞网络营销公司
  • 抖音带运营怎么关键词优化网站
  • 温州网站建设设计seo在线排名优化
  • 淘宝的电子商务网站的建设中国搜索引擎份额排行
  • 网站改版说明十种营销方式
  • 天津互联网十大公司seo排名专业公司
  • 厦门建网站做优化网站代发外链
  • 引用网站信息怎么做备注搜索引擎分哪三类
  • 如何使用花生壳做网站汽车网站建设方案
  • 郑州网站建设哪家有发布会直播平台
  • 校园网站建设依据windows优化大师官方免费下载
  • 做web网站的步骤百度快速排名化