¿Hay un algoritmo STL/boost que verificará si todos los elementos entre dos iteradores coinciden con un valor dado? ¿O alternativamente que un predicado devuelve true
para todos ellos?¿Hay un algoritmo STL/boost para verificar que todos los elementos en un contenedor coinciden con un valor?
es decir, algo así como
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;
}
Eso hará muy bien. Gracias. – GrahamS
en realidad, no creo que la sintaxis 'not_equal_to()' sea correcta. Puedo estar haciendo algo mal, pero tuve que usar 'bind2nd' con esto así:' std :: find_if (seq.begin(), seq.end(), std :: bind2nd (std :: not_equal_to() , val)) ' –
GrahamS