逻辑仿函数支持逻辑与、逻辑或和逻辑非运算。逻辑运算和算术运算非常相似,均执行“或”和“与”等操作。逻辑操作本身并不重要,其主要用途在于和仿函数适配器相结合,以便在使用仿函数时可以执行逻辑操作。
1.逻辑与
仿函数类logical_and<T>是一种自适应二元谓词,可用于验证某条件的真伪。若f是仿函数类logical_and<T>的对象,并且x与y均是型别T的数值,而T可转换为bool,仅当x和y皆为true时,f(x,y)才会返回true。
仿函数逻辑“与”在使用时需要包含头文件<functional>。型别T还可以是bool类型。该仿函数的基类是binary_function<T,T,bool>。
该仿函数类包含5个成员函数:
1)logical_and::first_argument_type。该成员函数代表第一个参数的型别T。
2)logical_and::second_argument_type。该成员函数代表第二个参数的型别T。
3)logical_and::result_type。该成员代表执行结果的型别bool。
4)boollogical_and::operator()(const T& x,const T& y)const。该成员函数代表函数调用的操作符,其返回值为x&&y。
5)logical_and::logical_and()。该成员函数代表该仿函数类默认的构造函数。
例13-13
}
例13-13的执行结果为:
2.逻辑或
仿函数逻辑“或”是一种自适应二元谓词,可用于验证某条件的真伪。若f是类logical_or<T>的对象,并且x和y均是型别T的数值,型别T还可以是bool类型,仅当x或y两者之中至少有一个为true时,f(x,y)才会返回true。使用仿函数“逻辑或”时,同样需要包含头文件<functional>。该仿函数的基类是binary_function<T,T,bool>。该仿函数类包含5个成员函数:
1)logical_or::first_argument_type。该成员函数代表第一参数的型别T。
2)logical_or::second_argument_type。该成员函数代表第二参数的型别T。(www.xing528.com)
3)logical_or::result_type。该成员代表执行结果的型别bool。
4)boollogical_or::operator()(const T&x,const T&y)const。该成员函数代表函数调用的操作符。其返回值为x||y。
5)logical_or::logical_or()。该成员函数代表该仿函数类的默认构造函数。
例13-14
例13-14的执行结果为:
3.逻辑非
仿函数逻辑非:
仿函数类logical_not<T>是一种自适应谓词,可用于验证某条件的真伪。仿函数“逻辑非”仅仅需要一个参数。若f是仿函数“逻辑非”(logical_not<T>)的对象,并且x是型别T的数值,型别T还可以是bool类型,仅当x为false时,f(x)才会返回true。
仿函数“逻辑非”的基类是:unary_function<T,bool>
仿函数类“逻辑非”包含4个成员函数:
1)logic_not::argument_type。该成员函数代表参数的型别T。
2)logic_not::result_type。该成员函数代表结果的型别bool。
3)bool logic_not::operator()(const T&x)const。该成员函数代表函数调用的操作符,其返回值为!x。
4)logical_not::logical_not()。该成员函数代表该仿函数类的默认构造函数。
例13-15
例13-15的执行结果为:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。