目录
仿函数和函数对象
仿函数只为算法服务
GNU C++独有的,非标准;identity在set容器中取data
没有继承就没有融入STL体系
- 仿函数可适配的条件:继承
- STL规定每个adaptable function都挑选适当着继承
- 仿函数是个函数对象,用小括号创建临时对象,实现的是函数功能,但是封装为class;方便adater去修饰调整
存在多种适配器Adapter
改造器
![]()
- A用B的方法,两种方式:继承B或者内涵B
- adapter内涵仿函数,迭代器,容器实现
- 容器适配器
- stack,queue严格的是adapter;改造就是将一些函数重新封装,换名称
函数适配器:Binder2nd
要问函数内部的参数类型及其返回值类型,就需要函数本身继承的calss回答,Operation::second_agrument 就由less内部继承的父类回答
- 已经更新用bind替换binder2nd;
函数适配器not1
新型适配器bind
bind应用
迭代器适配器reverse_iterator
inserter适配器
- 不必担心目的地址是否有足够空间
- copy函数已经写好了,通过操作符重载实现安全的赋值操作
X适配器:
ostream_iterator
istream_iterator
实际当创建istream_iterator<>对象时已经再读入都一个数据了,这个时候就要求cin输入操作