bind2nd如何使用_bind1st bind2nd的使用

本文详细介绍了C++标准库中的bind1st和bind2nd函数对象,用于预绑定函数参数,使得在比较操作中可以灵活指定参数位置。通过示例展示了如何使用bind1st移除容器中大于特定值的元素,以及使用bind2nd移除小于特定值的元素。bind1st和bind2nd在函数对象适配器中的应用对于理解和优化代码逻辑具有重要意义。
摘要由CSDN通过智能技术生成

可能这么解释以后大家还不是很清楚,那么就说点白话吧。我们在做比较

的时候所写的表达式像

x > k

,这里的

k

是一个参数表示你程序里面的

表达式要和

k

值去比较。

上面这两个表达式对应的应该是

bind2nd

简单的理解

就是把

k

作为比较表达式的第二个参数。

如果使用

bind1st

则对应的表达式是

k >

x

,也就是把

k

作为比较表达式的第一个参数。大家可能会注意到这里面

没有=的比较,

先别着急,

后面将会说道如何实现=的比较。

先举两个例子看看

bind1st

bind2nd

的用法。

int a[] = {1, 2, 100, 200};

std::vector arr(a, a + 4);

//

移除所有小于

100

的元素

arr.erase( std::remove_if( arr.begin(),

arr.end(),

std::bind2nd( std::less(), 100)), arr.end());

这里的比较表达式相当于

arr.value 

如果用

bind1st

则表达的意思就恰恰相反

//

移除所有大于

100

的元素

arr.erase( std::remove_if( arr.begin(),

arr.end(),

std::bind1st( std::less(), 100)), arr.end());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值