STL-仿函数

仿函数

a. 目的!!!要将某组操作作为参数(也是函数指针的目的),有两种方法:

a) 将这组操作设计为函数,然后传函数指针;

b) 将这组操作设计为仿函数,传仿函数对象。

b. 仿函数法概念:重载了 ( ) 运算符的类。它是一个类

c. stl仿函数定义:stl中定义了一元、二元仿函数。凡自定义的仿函数继承了一元、二元仿函数,就会成为它们那种类型,由此就可以被stl中的算法,容器等等所接纳(那些算法和容器都是以一元、二元仿函数为参数的)。一元、二元仿函数中不定义成员变量和成员函数,只是定义参数类型和返回值类型。实例如下:

一元仿函数

Template< calss Arg , class Result>
Struct unary_function{
Typedef Arg argument_type;
Typedef Result result_type;
};
Template< class T>
Struct Myfunction:public unary_function<T,T>{
//继承了一元仿函数就可以成为一元仿函数类型,从而被stl其他部件所接纳
T operator( ) (const T& x) const{
Return -x;
}
};

不使用函数指针来代替仿函数的原因:大概是因为仿函数作为类具有继承性,子类同时也是父类类型,这样作为参数就方便很多了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值