Мне нужно удалить элементы с определенным значением из std::list. С list<int>
я использовал метод remove().
Теперь у меня есть list<CMyClass>
, поэтому я подумал, что должен использовать remove_if(), но его предикат принимает только один параметр — проверяемый элемент.
Как написать функцию foo(const CMyClass &Bad)
, которая удаляет из списка все элементы, равные Bad?
Спасибо
PS
struct CMyClass {
void *Ptr;
int Var;
}
bool is_equal(const CMyClass &A, const CMyClass &B)
{
if (A.Ptr == B.Prt and A.Var == B.Var)
return true;
else
return false;
}