同时使用多个仿函式(第二部分)

ZDNet软件频道 时间:2003-02-25 作者:BUILDER.COM |  我要评论()
本文关键词:cpptips
在本文章的第一部分,你看到了如何同时运行多个仿函式。在这一部分,我们将向你演示如何同时使用多个一元判定。
在本文章的第一部分,你看到了如何同时运行多个仿函式。在这一部分,我们将向你演示如何同时使用多个一元判定。这个功能在你使用*_if标准模板库(STL)算法时特别有用,如count_if remove_if find_if replace_if等等。

一元判定是判定某个值是否满足某个条件的函数,它接收一个数值参数,如果该值满足判定条件则返回“真”,否则返回“否”。

当你需要对一个范围(range)进行筛选时,一元判定就派上用场了。例如,下面的代码将打印出给定范围内的偶数:

不过在实际应用中,你往往需要组合多个一元判定。例如,你也许希望打印正值的偶数,或者负值偶数。

多个一元判定的组合可以通过使用multiple_or/multiple_and函数实现。每个函数最多可接收六个参数;每个参合素都必须是可修改的一元判定。使一元判定获得可修改性的最简单的方法就是继承std::unary_function< type, bool>,“type”值得是你希望测试的数值的类型。

注意t multiple_or/multiple_and函数可以组合使用。例如,multiple_or( a, b, multiple_and( c, d, e), f)等于a || b || (c && d && e) || f。下面是multiple_or/multiple_and的代码和一个例子:

下面是一个例子:



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134