私はクラスを含むstd :: mapを持っていて、そのクラスにはidがあります。私はstd :: find_ifのC++ラムダ式?
typedef std::set<LWItem> ItemSet;
ItemSet selectedItems;
LWItemID i = someID;
ItemSet::iterator isi;
isi = std::find_if(selectedItems.begin(), selectedItems.end(), [&a](LWItemID i)->bool { return a->GetID()==i; }
私はラムダキャプチャ変数が見つからないというエラーが出るのセットで見つけようとしているIDを持っているが、私は私はそれを得るために行うことになってる何見当がつかない反復処理中にコンテナの内容を取得します。 また、私はループでこれを行うことはできませんが、私はラムダ関数を学ぼうとしています。
あなたは '宣言しました:
これは、ローカル変数
i
と数子のクラスを作成するための速記が効果的である:ここでは、ローカル変数i
をキャプチャして、引数としてa
を取りたいです'?何を探していますか? 'map'または' set'? –'selectedItems'は' LWItem'sのコンテナなので、ラムダは 'LWItemID'を引数として取ることができません。それは愚かな質問のように見える場合は、 'LWItem'(' const& '可能) –
謝罪を取らなければなりません。私の主な問題は、ローカルの 'LWItem'変数、' i'、 'std :: find_if'で反復される要素をどのようにキャプチャするのか不明であったようです。 –