Adapter:将一个Class的接口转换成另一个Class的接口,使原本因接口不兼容而不能合作的Class可以一起运作。主要有两种:迭代器适配器(Iterator Adpater)和容器适配器(Contaier Adpater)
迭代器适配器(Iterator Adpater)主要有三种:insert iterator,reverse iterator,iostream iterator。
它的作用是将一般迭代器的赋值(assign)操作转变为插入(insert)操作。
这三种形式的最大区别无非就是使用Adapter之后元素插入的位置了
以把经过Iterator Adapter修饰之后的结果当成是一种迭代器,依然可以用*符号,但不同的是当你对它进行赋值的时候,它将自动进行insert操作。
也就是说在insert iterator的封装下,该iterator只是将assign操作变成了push_back,push_front,insert,而其他操作++,--,*全部返回原先的iterator
这也就能够解释copy函数的时候进行复制的底层实现了,在每复制一个值后的++对insert iterator并不起作用,只有赋值assign会起到相关操作。
原文:https://www.cnblogs.com/tianzeng/p/10395048.html