我有以下類:的std ::刪除VS的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'期望期望一個單一的謂詞。您可以傳遞一個基於您的搜索返回true或false的lambda。 – Arunmu
爲什麼你需要一個以上的謂詞參數(我認爲這就是你比較的意思)? – MikeMB