У меня есть вектор, который выглядит следующим образом:
class Foo
{
//whatever
}
class MyClass
{
int myInt;
vector<Foo> foo_v;
}
И пусть говорят, в основном:
int main (void)
{
vector<MyClass> myClass_v;
}
Я хочу найти объект в myClass_v, у которого есть myInt == bar. Меня не волнует foo_v. Я думал об использовании функции find_if:
std::find_if(myClass_v.begin(),myClass_v.end(),condition);
с
bool MyClass::condition(MyClass mc)
{
if(mc.myInt==5)
return true;
else
return false;
}
Однако компилятор говорит, что в условии() отсутствуют аргументы. Не могли бы вы сказать мне, что я делаю неправильно? Я думал, что find_if будет вызывать условие (* First), причем First является указателем на объект myClass.
Или есть еще один хороший способ сделать то же самое?