STL源码剖析 第三章
来源:互联网 发布:妇科检查 知乎 编辑:程序博客网 时间:2024/06/10 12:10
iterators模式定义:
提供一种方法,使之能够依序寻访某个聚合物(容器)所含的各个元素,而又无需暴漏该聚合物的内部表述方式。
3.1 迭代器设计思维——STL关键所在
STL中心思想:将数据容器和算法分开,彼此独立设计,最后再以已贴粘着剂将他们撮合在一起
3.2 迭代器是一种smart pointer
迭代器是一种行为类似指针的对象,指针的最常见最重要的是内容提领(取出指标所指物体的内容)和成员访问。所以,迭代器最重要的编程工作是对operator *和operator->进行重载。
auto_ptr
3.3 迭代器相应类别(associated types)
最常用的相应类别有五种
迭代器所指对象的型别value type
difference type
pointer
reference
iterator catagoly
使用函数模板的参数推导机制
推导的是参数,无法推导函数的返回值类型
3.4 traits编程技法——STL源代码门钥
参数类别推导技巧虽然可以用于value type,但非全面可用:value type 用于函数的传回值
声明内嵌型别
关键词typename 的用意在于告诉编译器这是个型别
隐晦的陷阱:并不是所有的迭代器都是class type,如果不是class type 就无法为他定义内嵌类别
partial specialization(偏特化)的意义
traits 意义是,如果I定义有自己的value type 那么通过这个traits的作用,萃取出来的value_type就是I::value_type
指向常数对象的指针
0 0
- STL源码剖析 第三章
- 《stl源码剖析》剖析
- STL源码剖析_读书笔记:第三章 迭代器概念与traits编程技法
- stl源码剖析 第三章iterator 和 type traits及POD类型
- STL源码剖析之第三章读后笔记(一)
- stl源码剖析 第四章vector实现
- STL源码剖析(1)
- STL源码剖析(2)
- STL源码剖析(3)
- STL源码剖析(4)
- STL源码剖析(5)
- STL源码剖析(一)
- STL源码剖析
- STL 源码剖析
- STL源码剖析 [笔记]
- 《STL源码剖析》-- memory
- stl vector源码剖析
- 剖析STL auto_ptr源码
- 列转行_课程表
- HDU 1538 A Puzzle for Pirates 海盗分金问题
- poj1019
- Android开发--仿腾讯新闻客户端(1)内容列表界面
- worlist 1 - page 5
- STL源码剖析 第三章
- java socket通信
- 构造函数注意
- Android 自定义ListView实现底部分页刷新与顶部下拉刷新 .
- 开通博客,寥寥数字,以为纪念
- android学习——定制自己的日志工具
- 扩展欧几里得算法
- Notepad++: Problem: Edit json file
- Eclipse项目迁移到AndroidStudio(一)