在C++模板类map中一个参数为Compare类型,该类型为一个比较函数,其完整定义如下: template< class Key, class T, class Compare = std::less<Key>, class Allocator = std::allocator<std::pair<const Key, T> > > class map; 函数作为类进行传递,该类采用了重载操作符()来实现函数指针到类的转变.在实际中也可以仿照此风格写自己的…
函数调用运算符 struct test { int operator()(int val) const { return (i > 0 ? i : -i); } }; 所谓的函数调用就是一个类重载了函数调用符,类在使用重载函数调用符时接受相应参数.这一过程就像是使用一个函数一样,因此叫做函数调用. 上面的类test,它重载了函数调用符(), 接受一个int类型参数,返回它的绝对值. 我们就可以将一个test类对象当做一个函数来使用: int main(void) { test t; int va…