Я использовал find_if раньше со списками и векторами на C++, и он отлично работал. Но теперь, когда я пытаюсь использовать его с комплектами я получаю следующее сообщение об ошибке:find_if in set in C++: нерешенный перегруженный тип функции
error: no matching function for call to ‘find_if(std::set<A, Acmp>::iterator,
std::set<A, Acmp>::iterator, <unresolved overloaded function type>)’|
Мой класс выглядит следующим образом:
bool searchForA(A i) {
return (i.getVal() > 0);
}
void B::findA()
{
set<A, Acmp> cont;
set<A, Acmp>::iterator it;
A *a1 = new A(5);
A *a2 = new A(7);
cont.insert(*a1);
cont.insert(*a2);
it = find_if (cont.begin(), cont.end(), search)
}
Может кто-нибудь помочь мне понять, где проблема?
Нет. Я не включил это внутри класса A для набора. ЕСЛИ я могу спросить, зачем перегружать <влиять на find_if? – FranXh
Как насчет объявления 'search (A const & i)' –
Это прекрасный способ утечки памяти. Указатели совершенно не нужны. Кстати, [это] (http://liveworkspace.org/code/3v0m5c%247) близок и работает. – chris