13.6.2  求余仿函数和求反仿函数

13.6.2 求余仿函数和求反仿函数

1.求余仿函数(modulus<T>)

仿函数类modulus<T>是一种自适应二元仿函数。若f是仿函数的一个对象,并且x和y均属于型别T,则f(x,y)会返回x%y。求余仿函数类包含5个成员函数:

1)modulus::first_argument_type。该成员函数代表仿函数第一参数的型别T。

2)modulus::second_argument_type。该成员函数代表仿函数第二参数的型别T。

3)modulus::result_type。该成员函数代表执行结果的型别T。

4)modulus::operator()(const T& x,const T& y)const。该成员函数代表函数调用的操作符。其返回值为x%y。

5)modulus::modulus()。该成员函数代表此仿函数类的默认构造函数。

2.求反仿函数(negate<T>)

仿函数类negate<T>是自适应二元仿函数,是单参数的仿函数。若f是仿函数的对象,并且x属于型别T,则f(x)会返回(-x)。求反仿函数的基类是unary_function<T,T>。

该仿函数类包括4个成员函数:

1)negate::argument_type。该成员函数代表参数的型别T。

2)negate::result_type。该成员函数代表执行结果的型别T。

3)negate::operator()(const T& x)const。该成员函数代表函数调用时的操作符。其执行结果是(-x)。

4)negate::negate()。该成员函数代表该仿函数类的默认构造函数。

例13-17

978-7-111-51399-5-Chapter13-64.jpg

例13-17的执行结果为:

978-7-111-51399-5-Chapter13-65.jpg