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