七 仿函数 functors

第七章:仿函数  functors


1、STL算法接受一个函数指针或者仿函数对象作为其一个参数。但是普通函数指针不具备可配接能力。

2、STL仿函数分类:按操作数个数分为 一元仿函数、二元仿函数。(STL不支持三元仿函数)。按功能:可分为 算术运算、关系运算、逻辑运算。   要使用STL的内建仿函数,需含<functional>.

3、为了使仿函数具有可配接能力,每个仿函数需要定义自己的相应型别,如同迭代器要符合STL标准一样。仿函数的相应型别: 函数参数型别和传回值型别。  定义仿函数时只需要直接继承至STL已提供的两个基类(其中typedef 了所需的两个相应类型型别)

一元仿函数继承于:struct  unary_function  

二元仿函数继承于:struct  binary_function

4、证同元素: “运算op的证同元素”,即元素A若与该元素做op运算,会得到自己。 例如:加法的证同元素为0;乘法的证同元素为。要获取运算op的证同元素,只需要使用 模板函数 identity_element(op<T>);即可返回op的证同元素。

5、三个函数对象:

  证同:证同函数(对象)任何数据通过该函数后不会发生人任何改变,直接返回。

选择函数:接受一个pair,传回其第一或第二元素。  Select1st/select2nd;

投射函数:project1st:传回第一参数,忽略第二参数。

                   Project2nd:传回第二参数,忽略第一参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我很乐意为您介绍STL的六大组件。STL(Standard Template Library)是C++的一个标准程序库。它由一些必要部分和一些有用的组件组成。六大组件分别是:容器、迭代器、算法、仿函数、适配器、分配器。 容器(Containers)是用来容纳其他对象的对象(即存储数据的数据结构),STL中最基本的概念。容器分为序列式容器和关联式容器,序列式容器以元素在容器中的位置来组织和管理元素,关联式容器以元素的关键字来组织和管理元素。 迭代器(Iterators)是一个可遍历STL容器内所有元素的对象,它定义了一种遍历STL容器元素的标准方式,使得STL算法可以操作各种不同类型的STL容器。 算法(Algorithms)是定义在容器和迭代器之上的通用的重要的操作,比如查找、排序和删除等。算法可以大大简化C++程序员的工作,使代码更加简洁和易于维护。 仿函数Functors)是一种与函数类似的对象,可以用于一些STL算法。仿函数实际上是一个类,其中至少定义了一个()运算符,使得该仿函数对象可以像函数一样被调用。 适配器(Adapters)是一种用于修改容器接口的对象,即将一种容器适配为另一种容器接口。 分配器(Allocators)是STL容器的内存管理工具,分配器负责分配和回收STL容器内元素的内存空间。 希望这些简要介绍能够帮助您了解STL的六大组件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值