STL 源码剖析:8、配接器


配接器在 STL 组件的灵活组合运用功能上,扮演着轴承、转换器的角色。Adapter 这个概念,事实上是一种设计模式。《Design Patterns》一书提到 23 个最普及的设计模式,其中对 adapter 样式的定义如下:将一个 class 的接口转换为另一个 class 的接口,使原本因接口不兼容而不能合作的 classes,可以一起运作。



8.1 配接器之概观与分类


STL 所提供的各种配接器中,改变仿函数接口者,我们称为 function adapter,改变容器接口者,我们称为 container adapter,改变迭代器接口者,我们称之为 iterator adapter。

8.1.1 应用于容器

STL 提供的两个容器 queue 和 stack,其实都只不过是一种配接器。

8.1.2 应用于迭代器

STL 提供了许多应用于迭代器身上的配接器,包括 insert iterators,reverse iterators,iostream iterators。

8.1.3 应用于仿函数

function adapter 是所有配接器中数量最庞大的一个族群,其配接灵活度也是前二者所不能及,可以配接、配接、再配接。



8.2 container adapters


8.2.1 stack

8.2.2 queue



8.3 iterator adapters


8.3.1 insert iterators

8.3.2 reverse iterators

8.3.3 stream iterators



8.4 function adapters


当 function adapters 有了完全属于自己的一份修饰对象副本在手,它就成为了该修饰对象副本的主人,也就有资格调用该修饰对象,并在参数和返回值上面动手脚了。

8.4.1 对返回值进行逻辑否定:not1,not2

8.4.2 对参数进行绑定:bind1st,bind2nd

8.4.3 用于函数合成:compose1,compose2

8.4.4 用于函数指针:ptr_fun

8.4.5 用于成员函数指针:mem_fun,mem_fun_ref



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值