zoukankan      html  css  js  c++  java
  • 条款20 STL函数对象

    继承标准STL的函数对象

       1:  struct PopLess : public atd::binary_function<state,state,bool>
       2:  {
       3:      bool operator() { const State &a, const State &b } const
       4:      {
       5:          return popless(a,b);
       6:      }
       7:  }

    作者的解释: 首先popless是一个函数对象,他重载了函数调用操作符,因此可以用普通函数的调用语法。当然也可以实例化;

    第二,他派生于标准的binary_function基类。此项机制允许其他不部分的STL实现询问函数对象编译器问题。在这个例子中,从binary function派生的popless 允许我们找出函数对象的参数和返回值类型。

    第三,这个函数对象木有数据成员,没有虚函数列表,没有显示声明的构造函数。

    调用方法

       1:  sort(union, union+50,popless())

    通过在popless后面附加括号,就创建了一个没有名字的临时popless,这个对象仅仅存在于函数调用器件; 使用这个的好处在于,在编译期就知道operator函数会被调用,因此可以内联他,这样可以提供更高的效率

       1:  struct IsWarm::public std::unary_function<state,bool>
       2:  {
       3:      return operator ()(const state &a ) const
       4:      {
       5:          return a.aveTempF >60;
       6:      }
       7:  }
       8:   
       9:  state * warmandsparse = find_if(union,union+50, IsWarm() );
  • 相关阅读:
    Android——如何申请发布版SHA1值
    一些镜像下载网站
    装了两个系统后,怎么删除不需要的那一个系统
    python基础入门之十八 —— 模块和包
    python基础入门之十七 —— 异常
    python基础入门之十六 —— 继承
    python基础入门之十五 —— 类与对象
    谷歌云免费服务器申请方法
    【ROM制作工具】小白如何进行ROM解包,精简,修改,授权,打包详细图文教程
    按键精灵脚本与Total Control手机群控系统的完美结合
  • 原文地址:https://www.cnblogs.com/hwtxf/p/3518165.html
Copyright © 2011-2022 走看看