값을 찾을 수있는 함수가 있습니다.C++ (STL)에서 펑터를 무효화하려면 어떻게해야합니까?
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
알고리즘.
누구든지 술어를 부정하는 것과 관련된 해결책을 알고 있습니까?
그리고 당신은 심 템플릿 기능을 추가 할 수 있습니다. – xtofl