首页 理论教育 C++STL精解:逻辑仿函数

C++STL精解:逻辑仿函数

时间:2023-10-25 理论教育 版权反馈
【摘要】:逻辑操作本身并不重要,其主要用途在于和仿函数适配器相结合,以便在使用仿函数时可以执行逻辑操作。例13-13}例13-13的执行结果为:2.逻辑或仿函数逻辑“或”是一种自适应二元谓词,可用于验证某条件的真伪。仿函数“逻辑非”仅仅需要一个参数。仿函数“逻辑非”的基类是:unary_function<T,bool>仿函数类“逻辑非”包含4个成员函数:1)logic_not::argument_type。该成员函数代表函数调用的操作符,其返回值为!该成员函数代表该仿函数类的默认构造函数。

C++STL精解:逻辑仿函数

逻辑仿函数支持逻辑与、逻辑或和逻辑非运算。逻辑运算和算术运算非常相似,均执行“或”和“与”等操作。逻辑操作本身并不重要,其主要用途在于和仿函数适配器相结合,以便在使用仿函数时可以执行逻辑操作。

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的执行结果为:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈