STL_配接器 adapters
时间:2023-04-26 13:07:00
配接器
在STL 组件的灵活组合运用功能上,扮演者轴承、转换器的角色
配接:其实也是设计模式的体现,是适配器模式的体现——一个class 接口转换为另一个class 因为接口不兼容而无法合作的接口classes ,可一起操作
配件分类
- 改变仿函数接口的是function adapter
- 是的,改变容器接口container adapter
- 改变迭代接口的是iterator adapter
用于容器 container adapters
STL 提供的queue 和 stack 事实上,它们只是一种配接器,它们被修改deque 另一种容器风格是通过接口实现的
用于迭代器 iterator adapters
STL 迭代器上有许多适配器:insert iterator,reverse iterator,iostream iterators。可以使用这些迭代器
中获得
insert iterator
将普通迭代器的赋值操作转换为插入操作,包括三个迭代器 back_insert_iterator、front_insert_iterator 、insert_iterator, 但迭代器配接器不直观,STL 提供三个函数back_inserter() 、front_inserter() 、inserter()
reverse iterator
逆转一般迭代器的行进方向是必要的
IO stream iterator
将迭代器绑定到某个iostream 对象上
绑定到istream 对象 身上的,叫istream_iterator,具有输入功能
绑定到ostream 对象 身上,称为ostream_iterator,拥有输出功能
也可以绑定到其他系统设备上
用于仿函数,function adapters
functor adapters 它是所有配接器中数量最多的民族,灵活性最高,可以在配接中配接,包括系结 bind 、否定 negate 、组合 compose 、修改一般函数或成员函数,使其成为仿函数
优点是它们之间的绑定、组合和修饰能力几乎可以无限制地创造出各种可能的表达式
可以not1(bind2nd(less