7/24复习-STL算法、迭代器、仿函数、适配器、空间配置器

目录

1.算法

1.1质变算法

1.2非质变算法

2.迭代器

2.1输入迭代器

2.2输出迭代器

2.3向前迭代器

2.4双向迭代器

2.5随机访问迭代器

3.仿函数

3.1简介

3.2一元仿函数

3.3二元仿函数

3.4关系仿函数

3.5逻辑仿函数

3.6指针仿函数

4.适配器

4.1简介

4.2容器适配器

4.3迭代器适配器

4.4函数适配器

5.空间配置器

5.1简介

5.2对于STL中的容器

5.3对于STL中的算法


        前两天将STL中的容器讲解完毕了,今天将STL中剩下的算法、迭代器、仿函数、适配器、空间配置器。

1.算法

1.1质变算法

        指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等等

1.2非质变算法

        是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、寻找极值等等

2.迭代器

2.1输入迭代器

        只能从容器中读取元素,不能修改和删除元素,支持++运算符和*运算符,例如istream_iterator。

2.2输出迭代器

        只能向容器中写入元素,不能读取元素,支持++运算符和*运算符,例如ostream_iterator。

2.3向前迭代器

        能够向前遍历容器中的元素,支持读取、修改和删除元素,支持++运算符和*运算符,例如list的迭代器。

2.4双向迭代器

        能够向前和向后遍历容器中的元素,支持读取、修改和删除元素,支持++和--运算符和*运算符,例如deque的迭代器。

2.5随机访问迭代器

        能够随机访问容器中的元素,支持读取、修改和删除元素,支持+、-、+=、-=、<、<=、>、>=、[]、*运算符,例如vector的迭代器。

3.仿函数

3.1简介

        仿函数(Functor)是一种重载了函数调用运算符()的类对象,它能够像函数一样被调用,并可以作为算法的参数传递。STL中的很多算法都需要一个函数对象作为参数,例如sort、find_if、count_if等,这些函数对象就是仿函数。

3.2一元仿函数

        只接受一个参数的仿函数,例如negate、logical_not等。

3.3二元仿函数

        接受两个参数的仿函数,例如plus、minus、multiplies等。

3.4关系仿函数

        用于比较两个值的仿函数,例如less、greater等。

3.5逻辑仿函数

        用于逻辑运算的仿函数,例如logical_and、logical_or等。

3.6指针仿函数

        用于指针运算的仿函数,例如mem_fun、mem_fun_ref等。

4.适配器

4.1简介

        适配器(Adapter)是一种提供了新的接口或者功能的类模板,它能够将一种容器或者迭代器转换成另一种容器或者迭代器,或者将一个函数对象转换成另一个函数对象。

4.2容器适配器

        提供了新的容器类型,能够对原始容器进行包装、转换或者扩展,例如stack、queue、priority_queue等。

4.3迭代器适配器

        提供了新的迭代器类型,能够对原始迭代器进行包装、转换或者扩展,例如reverse_iterator、insert_iterator、ostream_iterator等。

4.4函数适配器

        提供了新的函数对象类型,能够对原始函数对象进行包装、转换或者扩展,例如bind、mem_fn、not1、not2等。

5.空间配置器

5.1简介

        空间配置器(Allocator)是一种用于在堆上分配内存的类模板,它提供了一组标准的接口,能够在运行时动态地分配、释放和管理内存。STL中的容器和算法都使用了空间配置器,用于管理内部的内存分配和释放。

5.2对于STL中的容器

        可以指定不同的空间配置器类型作为模板参数,从而实现对内存分配和释放的自定义控制。

5.3对于STL中的算法

        可以指定不同的空间配置器类型作为参数,从而实现对算法内部的内存分配和释放的自定义控制。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

puzell

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值