C++标准库bind函数知一二

C++11的头文件中提供的bind函数用于参数绑定,它可以接受可调用对象并生成新的可调用对象,适应原对象参数列表。bind的调用形式为bind(callable, arg_list),arg_list中的占位符如&_1表示参数位置。bind还能重新安排参数顺序,并支持值传递、引用传递。示例代码有助于理解bind的用法。" 85109859,8078482,Linux系统软件安装教程:从jdk到mysql,"['Linux', '安装教程', '软件管理', '系统配置']
摘要由CSDN通过智能技术生成

对可调用对象(函数指针,仿函数,lambda表达式等)进行参数绑定,C++11提供了名为bind的标准库函数,它定义在头文件functional中。

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

调用bind的一般形式为:auto newCallable = bind(callable, arg_list)
其中,newCallable本身是一个可调用对象,arg_list是一个逗号分隔的参数列表(形如arg1,arg2,arg3,…),对应给定的callable的参数。

当我们调用newCallable时,newCallabele会调用 callable,并传递给它arg_list中参数。

arg_list中的可能存在形如_n(n为自然整数)的占位符,这些占位符表示newCallable的参数,它们占据了传递给newCallable的参数的“位置”。
例如 _1为newCallable的第一个参数,_2为第二个参数,以此类推。

note:名字_n都定义在一个名为placeholders的命名空间中,而这个命名空间本身又定义在std命名空间中,所有需要先声明才能使用。
可以使用以下几种声明:
1、using std::placeholders::_n; //n为1 2 3 4 5 …
2、using namespace std::placeholders; //推荐

看了这么多文字,相信你和我一样一头雾水,让我们来看个简单的例子:

bool findstr(const string &str,string::size_type length)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值