Nous nous intéressons à la fonction de recherche que nous avons réalisé dans le TD de la semaine dernière :
template<class inputIterator, class T> inputIterator _find(inputIterator first, inputIterator last, T theValue) { while(first != last) { if (*first == theValue) return first; first++; } return last; }
Nous souhaitons ne plus rechercher un élément T the Value
mais rechercher le premier élément qui vérifie une condition. Cette condition s'exprime comme un prédicat, prenant un argument de T
et retournant une valeur true
si la la condition est vérifiée, false
si la valeur n'est pas vérifiée.
Modifier la fonction précédent pour prendre comme dernier argument correspondant à un prédicat unaire (ie. une condition).
Nous considérons le tableau suivant :
std::vector<int> vec = {1, 4, 3, 8, 2, 7, 5, 9, 6 };
Tester votre nouvelle fonction en définissant une condition qui vous permette le premier élément qui est supérieur à la value moyenne des éléments dans le tableau.