2
A
回答
8
bind1st
结合的第一个参数(例如,您有foo(int a, int b)
,然后bind1st(foo, 1)(bar)
将相当于foo(1, bar)
),bind2nd
第二个。不要使用它们,尽管它们几乎没用 - 用普通的boost::bind
代替(或者在C++ 0x中为std::bind
)。
3
假设你有一个函数对象f(x,y)
和需要只用一个变量的functoid的算法。此外,还有两种可能:
- 设置
y
一些固定值,让上x
- 设置
x
一些固定值的算法工作,让上y
算法工作这就是区别。
0
这是显而易见的。 bind1st
将值绑定到函子的第一个操作数(假设您知道C++中的函数是什么),第二个为bind2nd
。但是,对于可交换运营商+
(或std::plus
),它实际上没有什么区别(如果你没有在该示例非交换行为超负荷+
)。
0
bind1st结合的函数的所述第一参数而bind2nd结合第二个参数。如果像plus()函数那样操作,它将不会产生任何影响,因为在这两种情况下,添加两个数字仍然是相同的,但是如果您像minus()那样执行操作,那么它会根据您使用bind1st或bind2nd, 4和4-5会产生不同的结果,现在你得到了bind1st第一个参数绑定和bind2nd第二个参数绑定之间的区别。
相关问题
- 1. 与bind2nd和binary_function
- 2. 功能,bind1st和mem_fun
- 3. find_if与bind2nd和函子
- 4. 如何使用binder和bind2nd函子?
- 5. 使用std :: bind2nd与推力
- 6. 使用std :: bind2nd与引用
- 7. 使用bind1st在常量memeber功能
- 8. 使用std :: vector <T*> :: push_back与std :: mem_fun和std :: bind1st
- 9. 自动推断bind1st的类型(mem_fun(&my_class :: f),this)?
- 10. C++的std :: bind2nd是否有内置的Haskell等价物?
- 11. 使用不推荐使用的绑定器和C++ 0x lambdas
- 12. 使用std :: logical_and来结合两个条件
- 13. 如何使用std :: bind与compose2?
- 14. 如何编写n-ary否定符?
- 15. C++ STL的unary_function(在gcc 4.7.x中实现)是否有虚函数?
- 16. 组合谓词
- 17. regex_match作为谓词
- 18. 需要帮助理解拉姆达(钻营)
- 19. 传递回路成C++ 03的for_each
- 20. STL:卷积两个一元函数参数
- 21. PHP:OR和||和&&和
- 22. 如何组合一些函数来生成`isOdd`函数?
- 23. G ++编译错误的STL代码
- 24. 在对象指针向量中使用STL算法(C++)
- 25. Java和Android和SharedPreferences和OOP
- 26. 柯里化可以使用lambda函数吗?
- 27. 如何创建最大Functor?
- 28. 什么情况更好?
- 29. 搜索和和&
- 30. lxml和CDATA和&
如果你没有C++ 0x或不想带来提振依赖他们来很方便。 – 2011-05-24 15:11:34
他们有一元谓词边际使用......但同意,如果你想结合仿函数使用'提振:: function'用'提振:: bind' – AJG85 2011-05-24 15:12:22
@ChristianRau:这就是为什么我说“几乎”没有“完全”无用。虽然避免提升只是适得其反。 – 2011-05-24 15:16:25