• 条款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() );
  • 相关阅读:
    [buuctf] pwn-第五空间2019pwn
    [buuctf] pwn-[OGeek2019]babyrop
    [buuctf] pwn-ciscn_2019_c_1
    [buuctf] pwn-jarvisoj_level0
    wamp集成环境配置php7.x连接mssql
    EXCEL小技巧之单击单元格实现自增
    Asuhe博客转移
    数据链路层中的最小帧长是如何计算出来的?
    CSMA/CD协议中如何确定数据重传时机?
    Cache设计
  • 原文地址:https://www.cnblogs.com/hwtxf/p/3518165.html
Copyright © 2020-2023  润新知