文章目录
1.知识回顾
- 一级空间配置器中使用了类型萃取
- 空间配置器的内存基本工具uninitialized_copy等当中都会进行一步POD性判断
本章重点讲解 类型萃取技术,同时讲述一下迭代器
2 迭代器内嵌类型
//迭代器内部包含5个型别
struct iterator{
typedef Category iterator_category;
typedef T value_type;
typedef Distance difference_type;
typedef Pointer pointer;
typedef Reference reference;
}
3类型萃取
1.iterator_traits
iterator_traits如它的名字一样,是对迭代器进行萃取
萃取机
//迭代器类型萃取
template <class _Iterator>
struct iterator_traits {
typedef typename _Iterator::iterator_category iterator_category;
typedef typename _Iterator::value_type value_type;
typedef typename _Iterator::difference_type difference_type;
typedef typename _Iterator::pointer pointer;
typedef typename _Iterator::reference reference;
};
template <class _Tp>
struct iterator_traits<_Tp*> {
typedef random_access_iterator_tag iterator_category