浅谈STL——适配器

一、适配器(Adapters)

它是一种设计模式,为STL中能够将一个类的接口转化为用户更加想要使用的接口,适配器就扮演者轴承、转换器的功能

就是一个wrapper的模式,将要修饰的接口进行二次包装,展露出可以更容易让用户接受的接口方式。

适配器分为容器适配器、迭代器适配器、函数适配器。

二、容器适配器(Contioner Adapter)

诸如stack、queue把它们成为容器相较于容器适配器来说,显得我们更加业余。

我们将它们成为容器适配器

stack、queue本质是基于deque(一种双端队列)来进行封装

三、迭代器适配器(Iterator Adapter)

在对list接口的模拟实现时,不断地发现了迭代器的本质就是指针(stack、queue)或者是对指针的进一步封装(list)。正向迭代器与反向迭代器的类的封装直接证实关于迭代器作为一种适配器来作为模板参数进行传递的特性。

再反向迭代器的实现时,正是以正向迭代器为基础,对正向迭代器的接口进行了封装,减少了代码书写,下方的模板参数中的Iterator最终就转化为正向迭代器的类型。

template<class Iterator>
	class Reverse_Iterator
	{
		typename typedef Iterator::Ptr Ptr;
		typename typedef Iterator::Ref Ref;
		typedef Reverse_Iterator<Iterator> self;
	public:
		Reverse_Iterator(Iterator it)
			: _it(it)
		{}
        Iterator _it;
    };
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值