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

网站部分版块显示正在建设品牌推广的步骤和技巧

网站部分版块显示正在建设,品牌推广的步骤和技巧,网站登录如何做,网站开发公司代理目录 包装器 function包装器 bind 包装器 function包装器 function包装器 也叫作适配器。C中的function本质是一个类模板,也是一个包装器。 上面的程序验证,我们会发现useF函数模板实例化了三份。 包装器可以很好的解决上面的问题 ,让它只实…

目录

包装器

 function包装器

 bind


 

包装器

 function包装器

 function包装器 也叫作适配器。C++中的function本质是一个类模板,也是一个包装器。

 上面的程序验证,我们会发现useF函数模板实例化了三份。

包装器可以很好的解决上面的问题 ,让它只实例化成一份

包装器在这个头文件里面std::function在头文件<functional>

template <class Ret, class... Args>
class function<Ret(Args...)>;
模板参数说明:
Ret: 被调用函数的返回类型
Args…:被调用函数的形参

 

 静态成员函数可以直接调用,非静态比较麻烦,这样调用会报错,加取地址符号是语法规定

这里报错是因为成员函数的指针不能直接进行调用,如果要调用则必须用对象去调用

 这样即可正常调用

解决最开始的问题 

包装器例题  力扣

class Solution {
public:int evalRPN(vector<string>& tokens) {stack<long long> st;map<string,function<long long(long long,long long)>> mp={{"+",[](long long a,long long b){return a+b;}},{"-",[](long long a,long long b){return a-b;}},{"*",[](long long a,long long b){return a*b;}},{"/",[](long long a,long long b){return a/b;}},};for(auto & str:tokens){if(mp.count(str))//操作符{long long right=st.top();st.pop();long long left=st.top();st.pop();st.push(mp[str](left,right));}else{st.push(stoll(str));}}return st.top();}
};

 bind

 std::bind函数定义在头文件中,是一个函数模板,它就像一个函数包装器(适配器),接受一个可
调用对象(callable object),生成一个新的可调用对象来“适应”原对象的参数列表。一般而
言,我们用它可以把一个原本接收N个参数的函数fn,通过绑定一些参数,返回一个接收M个(M
可以大于N,但这么做没什么意义)参数的新函数。同时,使用std::bind函数还可以实现参数顺
序调整等操作。

// 原型如下:
template <class Fn, class... Args>
/* unspecified */ bind (Fn&& fn, Args&&... args);
// with return type (2)
template <class Ret, class Fn, class... Args>
/* unspecified */ bind (Fn&& fn, Args&&... args);

 可以将bind函数看作是一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对
象来“适应”原对象的参数列表,bind对参数进行适配。

 如果要直接使用Sub是不行的,我们可以选择多传一个参数或用Bind

 调用bind的一般形式:auto newCallable = bind(callable,arg_list);
其中,newCallable本身是一个可调用对象,arg_list是一个逗号分隔的参数列表,对应给定的
callable的参数。当我们调用newCallable时,newCallable会调用callable,并传给它arg_list中
的参数。
arg_list中的参数可能包含形如_n的名字,其中n是一个整数,这些参数是“占位符”,表示
newCallable的参数,它们占据了传递给newCallable的参数的“位置”。数值n表示生成的可调用对
象中参数的位置:_1为newCallable的第一个参数,_2为第二个参数,以此类推

 

Fn是function 

_1,_2,_3分别代表第一个,第二个和第三个参数,他们定义在placeholders的命名空间中

使用场景

 如果我们就想传参让成员函数和普通函数保持一致,就按照下面方式传参,这时可用bind

这里的作用主要是绑死固定的参数,Sub()被绑死

 1.5被绑死

http://www.ahscrl.com/news/13174.html

相关文章:

  • 网站建设方案书 doc小学生摘抄新闻
  • 电子商务网站建设的规划方案seo搜索引擎优化工作内容
  • 网站开发最有效的线下推广方式
  • 网站设计建设 武汉公司seo营销
  • 做网站的公司叫什么名字好搜索引擎论文3000字
  • 国外做任务赚钱的网站成品影视app开发
  • 学院网站建设通知软文广告有哪些
  • wordpress移动端页面优化大师软件下载
  • 玉林住房和城乡规划建设委员会网站2020 惠州seo服务
  • 网站开发入门培训机构seo好seo
  • 国内网站备案腾讯广告投放推广平台
  • 写作网站vir抖音关键词排名推广
  • 网页设计与制作实训总结报告某网站搜索引擎优化
  • 威县建设局网站优化大师app下载安装
  • 遵义网站建设推广培训心得
  • 关于大创做网站的项目计划书口碑营销的方法
  • 乐清网站推广制作今日头条武汉最新消息
  • 网站建设干货b站24小时自助下单平台网站
  • 上海红蚂蚁装潢设计有限公司官网江门seo网站推广
  • 北京公司招聘整站优化seo
  • 官方网站优化价格知名网页设计公司
  • 企业型网站网址公司怎么建立自己的网站
  • 交流平台网站怎么做seo排名关键词搜索结果
  • 平台公司融资的主要方式余姚seo智能优化
  • 小型公司建网站网络推广专员所需知识
  • 建筑公司网站宣传建筑工地文案范文图片如何提交百度收录
  • 动力 网站建设今日头条最新消息
  • 橙子建站验证码是什么东西seo排名点击软件推荐
  • .xyz做网站怎么样优化怎么做
  • 怎么做网站旺铺装修长沙专业竞价优化公司