У меня есть функция, чтобы найти значение:
struct FindPredicate
{
FindPredicate(const SomeType& t) : _t(t) {
}
bool operator()(SomeType& t) {
return t == _t;
}
private:
const SomeType& _t;
};
bool ContainsValue(std::vector<SomeType>& v, SomeType& valueToFind) {
return find_if(v.begin(), v.end(), FindPredicate(valueToFind)) != v.end();
}
Теперь я хотел бы написать функцию, которая проверяет, удовлетворяют ли все элементы вектора предикату:
bool AllSatisfy(std::vector<SomeType>& v) {
/* ... */
}
Одним из решений является использование алгоритма std::count_if
.
Кто-нибудь знает решение, которое предполагает отрицание предиката?