概述
配接器正如他的名字,在STL中是一个轴承、转换器的角色。Adapter这个概念,实际上是一种设计模式。具体可以参考之前的文章【C/C++ 设计模式】(十四)适配器模式(Adapter)
他在STL中,改变接口,赋予新功能,与其他classes进行兼容。主要包括仿函数配接器(function adapter)、容器配接器(container adapter)、迭代器配接器(iterator adapter)。
应用于容器
STL提供的两个容器queue和stack,两者是一种容器配接器,修饰了deque的接口。这两个于之前文章已经介绍过了,具体请参考:【STL】stack和queue的实现原理
应用于迭代器
STL提供了很多,其中
insert iterators 可以将一般迭代器的赋值操作转变为插入操作;
reverse iterators 可以将一般迭代器的行进方向逆转;
iostream iterators可以将迭代器绑定到某个iostream对象身上使其拥有输入输出功能。
应用于仿函数
functor adapters是所有配接器中数量最庞大的一个,可以不断配接、配接、再配接。这些配接操作包括系结、否定、组合、以及对一般成员函数的修饰(使其成为一个仿函数)。
对返回值进行逻辑否定:not1、not2;
对参数进行绑定:bind1st、bind2nd;
用于函数合成:compose1、compose2;
用于函数指针:ptr_fun;
用于成员函数指针:mem_fun、mem_fun_ref;