我在下面的参考文献中有一个观点:
bind1st
bind2nd
我不明白的是两者之间的区别。谁能帮我了解一下difference.an的例子会更有帮助。
发布于 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 )。
发布于 2011-05-24 23:09:27
假设您有一个函数对象f(x,y)和一个只需要一个变量的functoid的算法。那么有两种可能性:
y设置一些固定值,让算法在xy设置一些固定值,让算法在x上工作这就是区别所在。
发布于 2011-05-24 23:10:14
这是显而易见的。bind1st将一个值绑定到函数器的第一个操作数(假设您知道C++中的函数器是什么),将bind2nd绑定到第二个操作数。但是对于像+ (或std::plus)这样的交换操作符,这实际上没有区别(如果在那个例子中你没有用非交换行为重载+ )。
https://stackoverflow.com/questions/6112573
复制相似问题