仿函数学习(转载)
仿函数(functors),在C++标准中采用的名称是函数对象(function objects)就是类里重载()操作,实现用类伪装成函数,实现对应功能。比如可以藉此访问成员变量,让一元函数完成二元或多元函数的功能。以及与STL算法搭配使用。
还有比较神奇的语法:count_if(myVector.begin(), myVector.end(), ShorterThan(length));这里ShorterThan(length)是类的对象,却也可以调用operator()函数!
这一操作在https://www.jianshu.com/p/b4acf77af5fe这篇文章中多次使用。
而且结构体内也是可以实现仿函数。