stl源码剖析-仿函数初步
最近在研究stl源码剖析时,遇到了仿函数(functor)这个概念,不是很了解,写个博客记录下。仿函数就是使用起来象函数一样的类。针对某个类进行operator()(函数调用操作符)重载,它就成为了一个仿函数。
要让你的仿函数成为一个可配接的仿函数,可以参见下一篇博客。
代码示例
代码块语法遵循标准markdown代码,例如:
#include <iostream>
#include <vector>
using namespace std;
template <typename T>
class plus
{
public:
T operator ()(const T& x , const T& y )
{
return x +y;
}
};
template <typename T>
class minus
{
public:
T operator ()(const T& x ,const T& y )
{
return x -y;
}
};
void main ()
{
plus<int > plusobj;
minus<int >minusobj;
cout << plusobj (2,3) << endl;
cout << minusobj (3,2) << endl;
cout << plus <int>()(4,3) << endl; //定义临时对象
cout << minus <int>()(3,4) << endl;
}