首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bind1st和bind2nd

bind1st和bind2nd
EN

Stack Overflow用户
提问于 2011-05-24 23:04:23
回答 4查看 2.8K关注 0票数 2

我在下面的参考文献中有一个观点:

bind1st

bind2nd

我不明白的是两者之间的区别。谁能帮我了解一下difference.an的例子会更有帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-24 23:08:40

bind1st绑定第一个参数(例如,您有foo(int a, int b),那么bind1st(foo, 1)(bar)将等同于foo(1, bar)),bind2nd绑定第二个参数。但是,不要使用它们,它们几乎是无用的--使用泛化的boost::bind (或C++0x中的std::bind )。

票数 8
EN

Stack Overflow用户

发布于 2011-05-24 23:09:27

假设您有一个函数对象f(x,y)和一个只需要一个变量的functoid的算法。那么有两种可能性:

  • y设置一些固定值,让算法在x
  • Set上工作,为y设置一些固定值,让算法在x上工作

这就是区别所在。

票数 3
EN

Stack Overflow用户

发布于 2011-05-24 23:10:14

这是显而易见的。bind1st将一个值绑定到函数器的第一个操作数(假设您知道C++中的函数器是什么),将bind2nd绑定到第二个操作数。但是对于像+ (或std::plus)这样的交换操作符,这实际上没有区别(如果在那个例子中你没有用非交换行为重载+ )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6112573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档