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

免费刷网站百度关键词品牌网站建设 蝌蚪小7

免费刷网站百度关键词,品牌网站建设 蝌蚪小7,做外贸大大小小的网站有哪些,网站建设seo优化的好处C98里面的可调用对象只有普通函数和函数指针。 而在C11里面可调用的对象有下面几种#xff1a; 普通函数函数指针仿函数lambda表达式#xff08;匿名函数#xff09;包装器 普通函数、函数指针、仿函数、lambda表达式我在以前的文章里其实已经介绍过了 包装器 在C11里面有…C98里面的可调用对象只有普通函数和函数指针。 而在C11里面可调用的对象有下面几种 普通函数函数指针仿函数lambda表达式匿名函数包装器 普通函数、函数指针、仿函数、lambda表达式我在以前的文章里其实已经介绍过了 包装器 在C11里面有多种类型的可调用对象包装器可以将这些对象包装起来给我们提供一个统一的视角。相当于给外面再套了一层盒子。 包装器的定义 //1 template class T function; // undefined //2 template class Ret, class... Args class functionRet(Args...);它的定义貌似很奇怪包装器提供了模板2是1的特化Ret指出可调用对象的返回值类型并且给我们提供了可变参数用一个省略号...指出模板参数或函数参数是一个包。 function包含在头文件functional里面而且在std域里 包装方式function返回类型(参数类型1参数类型2...., 参数类型n) name 可调用对象 使用方式name(参数1, 参数2, ...参数n) 使用方式类似于函数 例一包装普通函数 #include iostream #include functional using namespace std;int f(int x, int y) {return x - y; } int main(void) {//用包装器包装起来functionint(int, int) f1 f;cout f1(2, 1) endl;return 0; }例二包装lambda表达式 //包装可调用对象lambda表达式functionint(char, char, char) f2 [](char e1, char e2, char e3)mutable-int{return e1 - e2 e3;};cout f2(z, a, x) endl;例三包装仿函数 class Student { public://重载(),仿函数char operator()(string str){return str[0];} };//包装可调用对象仿函数functionchar(string) f3 Student();cout f3(hello) endl;在某些情况下我们可能需要提供一个统一的接口来接收这些类型就需要使用到包装器。 包装器一般会和std::bind结合使用 std::bind std::bind在包装器中有如下作用 作用1调整参数顺序 作用2调整参数个数 simple(1) template class Fn, class... Args bind (Fn fn, Args... args);with return type (2) template class Ret, class Fn, class... Args bind (Fn fn, Args... args);bind在包装器里面的作用简单来说就是利用旧的可调用对象创建了一个新的。第一个参数是一个万能引用用来接收可调用对象而它使用后面的参数包指明新对象的函数参数。 int f(int x, int y) {return x - y; }//用包装器包装起来functionint(int, int) f1 f; //普通函数cout f1(2, 1) endl;//使用bindfunctionint(int, int) ff1 bind(f, placeholders::_1, placeholders::_2);cout ff1(2, 1);在使用std::bind的时候使用placeholders::_n指明旧的可调用对象的参数n对应参数在原来的参数列表里是第几个。这里的placeholders::_1指的就是x。 那么我们可以利用bind来调整参数的顺序 functionint(int, int) ff1 bind(f, placeholders::_2, placeholders::_1);一些特定情况下某个参数的值是固定的。调整参数的个数实际上调整的是bind新创建对象的参数。 functionint(int) f4 bind(f, 95, placeholders::_1);cout f4(12) endl;对于对象f来说它调用的时候需要两个int类型的参数。当我们进行如上操作的时候将第一个参数固定成了95调用的时候就只需要传递一个参数就可以。 使用bind调整参数个数时需要注意 如果想要固定某一个参数在bind的时候需要指明指明以后placeholders::_X这个X从旧可调用对象的下一个参数开始算起。function也需要做相应的改变实例化的时候用bind固定的参数类型不需要再写进来。
http://www.w-s-a.com/news/590690/

相关文章:

  • 返利淘网站怎么做wordpress htnl短代码
  • 网站 手机 appwordpress管理账户
  • 徐州网站建设 网站制作做招商网站的前景怎么样
  • 网站开发就业岗位鹧鸪哨网站1v1深度开发
  • 在线手机动画网站模板网站登录注册怎么做
  • 苏州品牌网站设计晋江论坛兔区是什么
  • 怎么利用代码做网站重庆网络营销网站建设销售
  • 用dw怎么做网站留言板百度举报网站
  • 成都微网站设计企业为什么要做网络营销推广
  • 双桥区网站制作企业网站一般内容包括哪些
  • 莆田外贸专业建站做app 需要先做网站吗
  • 网站怎么用北京口碑最好的装修公司
  • 潮州网站建设深圳微信分销网站设计
  • asp.net网站开发实例教程pdf泉州seo网站关键词优推广
  • 怎样建立一个企业网站dede 网站名称
  • 做网上竞彩网站合法吗免费网站建设品牌
  • 网站开发所需要的的环境客户关系管理的内涵
  • 优质做网站公司做软件的人叫什么
  • 徐州市徐州市城乡建设局网站首页网站建设刂金手指下拉十五
  • 建设游戏网站目的及其定位市场营销策略概念
  • 小学电教检查网站建设资料wordpress谷歌字体
  • 南通做网站的公司有哪些中国建筑论坛网
  • 技术支持 佛山网站建设wordpress不用ftp
  • 广州定制app开发wordpress配置搜索引擎优化
  • 兰州网站建设论坛四川建设网官网登录
  • 在线作图免费网站湖南批量出品机
  • 深圳做网站公司有哪些地方妇联加强网站平台建设
  • vps建设网站别人访问不了网页链接生成器
  • 网站建设一般要多少钱电商平台取名字大全
  • 怎么做网站封面上的图网站开发语言 微信接口