J'ai une classe:
J'ai un vector de class:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class MaClass{ public: int iVal1; int iVal2; string sz; bool operator () (int& i) { return ((*this).iVal2 == i); } };
Le vector est ensuite rempli (je passe le code).
Code : Sélectionner tout - Visualiser dans une fenêtre à part vector<MaClass> vClass;
J'aimerais utiliser l'algo find_if sur ce vector (mais il y a peut-être mieux), afin de trouver la classe dont la valeur iVal2 = 2.
J'ai défini un objet fonction comme dans le code ci-dessus.
Ce code ci-dessous ne fonctionne pas:
Autant vous dire que je n'y comprends rien avec find_if et les foncteurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part vector::iterator it = find_if(vClass.begin(), vClass.end, MaClass()(2));
Les exemples et les explications que je trouve sur le net ne me permettent pas d'utiliser correctement l'algo avec mon programme.
L'erreur ici est: le terme ne correspond pas à une fonction qui prends les arguments 1.
Si j'écris:
Conversion impossible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part vector::iterator it = find_if(vClass.begin(), vClass.end, MaClass(2));
Merci de m'aider à comprendre.
Partager