OOP11:Iterators
第11章 Iterators
11.1 Iterator的作用
- 在算法中使用的统一接口
- 像指向容器中元素的指针一样工作
- 通过++操作符顺序访问容器的元素
- 通过*操作符访问元素的内容
11.1.1 auto_ptr
template<class T> |
11.1.2 iter的基础实现:listIter
// List的内部实现 |
11.1.3 对 迭代器 及 迭代器指向的类型 进行编程
直接实现:
- func需要使用iterator指向的元素的类型
- 由于iterator是一个模板,因此我们不知道其指向的类型是什么
- 将与指向元素类型有关的代码封装为另一个函数func_impl
template <class I, class T> // 我们不知道iter指向的对象类型是什么 |
使用iterator特征提取器
- typename表示后面的类型,是可以推导出来的
- 这样就可以直接获得迭代器指向的对象的类型I::value_type
template <class T> |
11.2 partial specialization偏特化
对同一个模板类C
- 当传入的类型是指针时,使用下面的模板进行实例化
- 当传入的类型不是指针时,使用上面的模板进行实例化
// 传入的类型不是指针 |
11.2.2 Iterator中的偏特化
template<class I> |
11.2.3 STL中的标准特征提取技术
template<class I> |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 华风夏韵!
评论