Функция accumulate_if отличается от стандартной accumulate тем, что принимает дополнительный аргумент — предикат. 1
Алгоритм accumulate_if похож на std::accumulate, но в нём есть предикат, который позволяет фильтровать линейный контейнер при выполнении операции. 14