仿函数类似于以类为基础的函数,比如下面这个例子

class Pow {
public:
	double operator()(double x, int y) {
		return pow(x, y);
	}
};

我们可以通过类名直接调用这个仿函数

有的时候仿函数会起到奇效,比如给vector容器中的元素进行排序

class compareVec {
public:
	compareVec(bool b = true):flag{b}{}
	bool operator()(int a, int b) {
		if (flag == true)
			return a > b;
		else
			return a < b;
	}
private:
	bool flag;
};

int main() {
	vector<int> vec = { 3,1,6,8,2,11 };
	sort(vec.begin(), vec.end(), compareVec(false)); //或者true

	system("PAUSE");
}

上面这个例子可以通过仿函数决定正序排序还是倒序排序