C++征途 --- 内建函数对象

1.什么是函数对象:函数对象是通过内部重载了函数调用符()函数的类实例化出的对象

2.什么是内建函数对象

与其说是内建函数对象不如说是内建了一系列内部重载了函数调用运算符的类,我们可以通过这些类创建函数对象然后去调用类中的重载函数,每一个重载函数内的函数实现都不一样,它们都具有不同的功能,具体是什么功能由类来决定

使用内建函数对象类来实例化内建函数对象的时候,需要我们引入头文件:

#include <functional>


 第一部分 --- 算术仿函数

1.一元运算是指函数只有一个操作数,二元运算是指有两个操作数

2.所谓的取反是指将得到的正数变为负数后返回,将得打的负数变为正数后返回 

(使用内建函数对象的时候要引入头文件 : #include <functional>)

通过negate这个内建函数对象类实例化一个函数对象n,然后通过函数对象n调用重载函数(仿函数形式),这个仿函数的作用是将传进来的参数取反(负变正,正变负)

 plus内建函数对象类中的函数调用运算符重载函数的参数是 (T a , T b)T是泛型参数,也就是说参数a和参数b具有相同的数据类型


第二部分 --- 关系仿函数

1.关系仿函数是用来比大小的 

2.关系仿函数常常作谓词使用,且作谓词使用的时候常常用创建匿名对象的形式使用 


第三部分 --- 逻辑仿函数

1.逻辑仿函数的作用是实现逻辑运算

与:两个都为真才为真

或:两个中有一个为真就为真

非:将真变为假,假变为真 

2.这个逻辑仿函数常常作为谓词来指定拷贝算法的拷贝方式

拷贝算法位于标准算法头文件中,使用它时我们需要将<algorithm>头文件进行包含

拷贝算法的作用是将容器1中给定范围的数据拷贝一份,然后将拷贝的数据按照给定的谓词(仿函数)处理后从给定的容器2的存储起点开始存储

两个容器的类型和泛型参数类型都得一样才行

从参数来看:第一个参数是容器1的拷贝起点,第二个参数是容器1的拷贝终点,第三个参数是容器2的存储起点。第四个参数是我们指定的对拷贝数据的处理方式(谓词(仿函数))

注意:在将容器1中的数据拷贝到容器2时我们必须保证容器2中有足够大的内存空间来存储数据,否则的话会拷贝失败

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值