STL源码阅读-functor与adapter
2024-10-07 01:43:14
为什么要用仿函数
函数指针不灵活,难以与STL其他组件配合使用
Adapter
将一个class的接口转换为另一个class的接口,使原本因接口不兼容而不能合作的classes,可以一起运作
STL中的adapter
function adapter
改变functor的接口,一般通过函数组合来体现
container adapter
改变container的接口, 如queue和stack其实是deque修改而来
iterator adapter
改变iterator的接口,如
- insert iterator 将一般迭代器的赋值转变为插入,如copy函数的代码
- back_inserter(Container& x)
- front_inserter(Container& x)
- inserter(Container& x, Iterator i)
- reverse iterator 将一般迭代器的行进方向逆转
- iostream iterator 将迭代器绑定到某个iostream对象上
- istream iterator 如将operator++变为operator>>
总结
仿函数重载operator()
迭代器重载operator*,operator++等指针惯常行为
容器和迭代器身上的配接器是一种模板
参考
- STL源码剖析第8章
最新文章
- iOS架构一个中型普通App的一些经验总结
- ThinkPHP 3.2 获取页面运行时间
- centos6 系统优化脚本
- Ubuntu下解决bash 没有那个文件或目录的方法
- opencv颜色识别代码分享
- 高效率dc升壓轉換器 應用技巧談 功率設計
- C#高级知识点概要(1) - 委托和事件
- gnome3
- 《HelloGitHub》第 16 期
- Go语言学习1
- Python-cookie,session
- 项目部署相关命令(pm2)
- ubuntu16 64 搭建lnmp环境
- CSS属性disabled和readonly的区别是什么
- 关于sparksql操作hive,读取本地csv文件并以parquet的形式装入hive中
- 2018.10.30 uoj#273. 【清华集训2016】你的生命已如风中残烛(组合数学)
- (5)subprocess模块(子进程模块)
- activemq的学习
- VS2012/2013引用对话框的糟糕设计
- [LeetCode]160.Intersection of Two Linked Lists(2个链表的公共节点)