我有以下类:的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