STL源代码剖析个人总结6--STL配接器
来源:互联网 发布:java新手项目 知乎 编辑:程序博客网 时间:2024/04/28 12:32
配接器在STL组件的灵活应用组合中扮演着转换器的角色,《设计模式》一书中将其定义为了一种设计模式。
适配器按照其使用的场合分为三种类型:
容器适配器: 改变容器的接口
迭代器适配器 : 改变迭代器的接口
仿函数适配器 : 能对仿函数进行组合或改变其接口
一. 容器适配器
如前面容器一节讲述过的stack,queue 都是通过修饰改变一下deque的接口而得到的
二. 迭代器适配器
<1>. Insert Iterator: 插入型迭代器适配器主要有三个--back_inserter(Container& x),front_inserter(Container& x),inserter(Container&x,Iterator i).
每一个插入型的迭代器适配器内部都维护着一个容器;容器拥有自己的迭代器,于是当客户端对插入型适配器执行赋值操作时会在适配器内部转换成对容器本身的操作,但若是容器本身没有提供相应的插入操作,则相应的插入型适配器不能用于此容器之上。(如因vector未提供front_insert操作,故front_inserter不能应用于vector,否则执行时会出错。)
<2>. Reverse iterators:逆序迭代器适配器,主要有rbegin(),rend()
迭代器必须是双向迭代器,并且其有begin(),end()方可使用此逆序迭代器适配器。一定要注意rbegin(),rend()与begin(),end()之间的关系。
<3>. IOStream Iterator: 输入输出流迭代器适配器
绑定到istream的迭代器具有输入功能
绑定到ostream的迭代器具有输出功能
三. 函数配接器
函数配接器是所有配接器中数量最大的一个族群,其配接灵活性 独一无二的。通过其间的绑定、组合、修饰等,几乎可以无限制的创造出各种可能的表达式,并搭配STL算法其演出。大多数函数配接器都定义在文件functional中。(未完,待续。。。)
- STL源代码剖析个人总结6--STL配接器
- STL源代码剖析个人总结1--STL的内存管理
- STL源代码剖析个人总结2--STL的迭代器
- STL源代码剖析个人总结5--STL仿函数
- STL源代码剖析个人小结3--STL容器
- STL源代码剖析个人小结4--STL算法
- STL源码剖析总结
- STL源码剖析总结
- 《STL源码剖析》总结
- STL — vector源代码剖析
- STL源码剖析---STL容器特征总结
- STL源码剖析 读书总结
- STL源代码剖析笔记----第一章STL概论与版本简介
- STL 剖析
- STL源码剖析---STL容器特征总结(含迭代器失效)
- STL源码剖析---STL容器特征总结(含迭代器失效)
- STL源码剖析---STL容器特征总结(含迭代器失效)
- STL源码剖析---STL容器特征总结(含迭代器失效)
- 黑马程序员之C#编程基础学习笔记:提示用户输入用户名,然后再提示输入密码,如果用户名是"admin"并且密码是“888888”,则提示正确,否则提示错误,如果用户名不是admin还提示用户用户名不存在
- 黑马程序员之C#编程基础学习笔记:提示用户输入年龄,如果大于等于18,则告知用户可以查看,如果小于10岁,则告知不允许查看,如果大于等于10岁,则提示用户是否继续查看(yes,no),如果输入的是ye
- ExtJs定义表格
- 短暂的人生
- AudioManager可以修改系统Android系统的音量
- STL源代码剖析个人总结6--STL配接器
- 黑马程序员之C#编程基础学习笔记:提示用户输入两个整数(假设i1,i2)。如果i1,i2都是正数,则将i2的值递增一个数,然后打印i1+i2的值;如果i1,i2都是负数,则将i1的值递减10个数,然后
- 黑马程序员之C#编程基础学习笔记:用while计算1到100之间整数的和;
- 黑马程序员之C#编程基础学习笔记:要求用户输入用户名和密码,只要不是admin,888888就一直提示要求重新输入。
- 移动Web开发的10个重要准则
- 基本移动类型
- 黑马程序员之C#编程基础学习笔记:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出。
- 将linux-2.6.34.13移植到s5pv210 在make时出现的编译器问题
- .黑马程序员之C#编程基础学习笔记:不断要求用户输入一个数字,当用户输入end的时候显示刚才输入的数字中的最大值。