创建函数对象
除了使用内置的函数对象外,我们还可以创建自己的函数对象,为了达到这个目的,只需要创建
一个重载operator()函数的对象。然而,为了获得最大的灵活性,你会希望使用下面的这些类中
的一个,这些类被STL定义为你所创建的函数对象的基类。
这些模板类为函数对象使用的一般数据类型提供具体的类型名。虽然从技术上讲这些模板
类很便利,但是它们几乎总是在创建函数对象时才被用到。
下面的程序演示了一个定制的函数对象。
我们注意到,reciprocal()有两个重要的方面。第一,它继承了基类unary_function,这使它可
以访问argument_type和result_type类型。第二,它定义了operator(),从而可以返回其参
数的倒数。一般来说,为了创建一个函数对象,只需要继承适当的基类并根据需要重载operator()。