Есть ли алгоритм STL/boost, который будет проверять, соответствуют ли все элементы между двумя итераторами заданное значение? Или, альтернативно, предикат возвращает true
для всех из них?
то есть. что-то вроде
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;
}
или
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;
}