Esiste un algoritmo STL/boost che verificherà se tutti gli elementi tra due iteratori corrispondono a un determinato valore? O in alternativa che un predicato restituisce true
per tutti loro?Esiste un algoritmo STL/boost per verificare che tutti gli elementi in un contenitore corrispondano a un valore?
vale a dire una cosa del genere
template<class InputIterator, class T>
InputIterator all_match (InputIterator first, InputIterator last, const T& value)
{
bool allMatch = true;
while(allMatch && first!=last)
allMatch = (value == *first++);
return allMatch;
}
O
template <class InputIterator, class Predicate>
bool all_true (InputIterator first, InputIterator last, Predicate pred)
{
bool allTrue = true;
while (allTrue && first != last)
allTrue = pred(*first++);
return allTrue;
}
Che farà bene. Grazie. – GrahamS
in realtà non penso che la sintassi 'not_equal_to()' sia giusta. Potrei fare qualcosa di sbagliato, ma ho dovuto usare 'bind2nd' con esso in questo modo:' std :: find_if (seq.begin(), seq.end(), std :: bind2nd (std :: not_equal_to() , val)) ' –
GrahamS