iは下記参照のビューを持っていました。 誰も私がdifference.anの例をもっと知ることを知るために助けることができますか?bind1stとbind2nd
2
A
答えて
8
bind1st
は、最初の引数(例えば、あなたがfoo(int a, int b)
を持って、そしてbind1st(foo, 1)(bar)
がfoo(1, bar)
と同等になります)、bind2nd
秒1をバインドします。ただし、それらを使用しないでください。一般的なboost::bind
(またはC++ 0xではstd::bind
)を使用してください。
3
関数オブジェクトf(x,y)
と、変数が1つのみのFunctoidを必要とするアルゴリズムがあるとします。そして、二つの可能性があります:
- が
y
ためのいくつかの固定値を設定し、その差だy
上のアルゴリズムの作業をx
x
のためのいくつかの固定値を設定してください上のアルゴリズムの仕事を聞かせてみましょう。
0
これは明らかです。 bind1st
は、ファンクタの最初のオペランドに値をバインドします(C++のファンクタが何であるかを知っていると仮定した場合)。bind2nd
を2番目のオペランドにバインドします。しかし、交換可能演算子が+
(またはstd::plus
)の場合、実際には違いはありません(その例では、非可換性の動作で+
をオーバーロードしなかった場合)。
0
bind1stは関数の最初のパラメータをバインドし、bind2ndは2番目のパラメータをバインドします。もしplus()functorのような操作をしても、2つの数値の加算はどちらの場合も同じですが、minus()のような操作を行うと、bind1stやbind2ndの使用に応じて違いが生じます。 4と4-5は異なる結果を生成します。今では、bind1stの最初のパラメータバインドとbind2ndの2番目のパラメータバインディングの違いがあります。
関連する問題
- 1. bind1stまたはbind2ndを使用しますか?
- 2. mem_funは+ bind2nd
- 3. for_eachループでbind2nd
- 4. C++ bind2nd質問
- 5. のstd :: bind2nd交換
- 6. boost :: bindをbind1st/2ndと置き換えることはできますか?
- 7. std :: bind2ndとstd :: bind二次元配列と構造体の配列
- 8. なぜstd :: bind1stは「ほとんど使用不可能」と考えられるのですか?
- 9. 自動的にbind1stのタイプを推測します(mem_fun(&my_class :: f)、this)?
- 10. STLを使用して複数の関数引数をバインドする
- 11. std :: logical_andを使用して2つの条件を結合する
- 12. いくつかの簡単なコードは、問題を説明します
- 13. アサーションエラーのstdのためのstd :: copy_ifを使用している::ベクトル
- 14. このコードを最適化する方法はありますか?
- 15. 整数型std :: vectorを定数で除算する演算子を提供しようとしています
- 16. ラムダ関数でカリングを使用できますか?
- 17. 複数の引数にfor_eachなどのSTLアルゴリズムを適用
- 18. ラムダ関数の2番目のパラメータをバインドすることは可能ですか?
- 19. どのような場合が良いですか?
- 20. メンバー関数を渡して、フリー関数のブーストポインタを作成します。
- 21. オブジェクトのポインタのベクトルにSTLアルゴリズムを使用する(C++)
- 22. Xcode7:基本C++プログラムで型名エラーが見つかりません
- 23. G ++は間違ったSTLコードをコンパイルします
- 24. STLの学習中のいくつかの問題
- 25. C++ 03のメンバ関数から返された値でベクトルを満たす方法は?
- 26. C++のメンバ関数への関数ポインタ
- 27. stlが関数をメンバーと比較していないのはなぜですか?
- 28. stl remove_if with class member function result
- 29. 差異 - と - と 'と'または 'と'と
- 30. Rancherと牛とRancherとKubernetesとStandalone Kubernetes
C++ 0xを持っていないか、またはブースト依存関係を持たせたくない場合は、かなり便利です。 –
単項述語には限界がありましたが、functorにboost :: bindと組み合わせてboost :: functionを使用させたい場合は合意しました – AJG85
@ChristianRau:だからこそ、役に立たない。ブーストを避けることはちょうど逆効果です。 –