假設我有以下代碼:如何在一元謂詞中使用類成員變量?
#include <vector>
#include <algorithm>
#include <cmath>
bool pred(float const &val)
{
//return fabs(val) < epsilon;
}
class Foo
{
public:
Foo(float eps) : epsilon(eps) { }
int Bar(std::vector<float> vec)
{
return std::count_if(vec.begin(), vec.end(), pred);
}
private:
float epsilon;
}
我想有一元謂詞pred()
作爲一類方法,以便它可以訪問epsilon
成員變量。我見過使用operator()
的例子,但如果我理解了它,操作員應該比較整個類實例。我只需要比較給定的std::vector
的Bar()
中的元素。是否有可能創建一個一元謂詞作爲類成員?如果沒有,還有其他方法可以做到嗎?
非常好,謝謝!儘管C++ 11看起來更優雅,但我正在尋找一個C++ 98解決方案,因此我會接受這個答案。 – wondering