bool operator()关于C++的模版,请问
template<classT>structgreater:publicbinary_function<T,T,bool>{booloperator()(constT&x...
template<class T>
struct greater : public binary_function<T, T, bool> {
bool operator()(const T& x, const T& y) const;
};
那个operator定义了什么运算符?
这个具体用起来像什么样子呢?
面向对象的谓词就是functor是什么意思? 展开
struct greater : public binary_function<T, T, bool> {
bool operator()(const T& x, const T& y) const;
};
那个operator定义了什么运算符?
这个具体用起来像什么样子呢?
面向对象的谓词就是functor是什么意思? 展开
展开全部
functor就是function like的类实现。那个operator声明了一个圆括号的重载。
用法:
int a[] = {0,1,2,3,4,5,6,7,8,9};
cout << *find_if(a, a + sizeof a/sizeof a[0], bind2nd(greater<int>(), 5));
在find_if函数里它会调用greater<int>()的圆括号重载,bind2nd的作用就是把5绑定为greater<int>()()的第二个参数,如:greater<int>()(x, 5),其中x是数组的每个元素。
用法:
int a[] = {0,1,2,3,4,5,6,7,8,9};
cout << *find_if(a, a + sizeof a/sizeof a[0], bind2nd(greater<int>(), 5));
在find_if函数里它会调用greater<int>()的圆括号重载,bind2nd的作用就是把5绑定为greater<int>()()的第二个参数,如:greater<int>()(x, 5),其中x是数组的每个元素。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询