私は以下のクラスがあります。のstd ::のstd :: remove_if対削除
class Foo
{
public:
void Fill();
private:
std::vector<std::wstring> vec;
};
とし、その後の実装は次のとおりです。私がやりたいのは何
void Foo::Fill()
{
vec.push_back(L"abc aaa");
vec.push_back(L"def aaa");
vec.push_back(L"fed bbb");
vec.push_back(L"cba bbb");
}
から要素を削除しますこのベクトルは、 "def"を含むものと言います。そうする最も簡単な方法は何でしょうか?
私はremove_ifを使用すると考えていますが、コンパレータは1つのパラメータ - コンテナ要素しか受け入れません。
優雅なソリューションはありますか?私は最後の手段としてループを使用します。
あなたはどのコンパレータについて話していますか? –
'remove_if' expectsは単項述語を期待しています。あなたの検索に基づいて真または偽を返すラムダを渡すことができます。 – Arunmu
なぜ述語に複数の引数が必要なのですか(私はこれをコンパレータが意味すると仮定します)。 – MikeMB