STL 迭代器

2019-05-24  本文已影响0人  离水的鱼5746

关键词随便记

迭代器用到“相应型别”
什么是相应型别?迭代器所指之物的型别便是其一
需求:声明一个变量,以迭代器所指对象的型别为型别
解决:function template的参数推导机制

traits编程技法

template<class I>
struct iterator_traits{
  typedef typename I::value_type value_type;
}
template<class I>
typename iterator_traits<I>::value_type func(I ite){
  return *ite;
}

想到为什么后面没有采用I::value_type了,因为不存在

//int*不是一种class type,亦可以通过traits取其value_type
template<class T>
struct iterator_traits<T*>{  
  typedef T value_type;
}
template<class T>
struct iterator_traits<const T*>{
  typedef T value_type;
}
图片.png
图片.png

不懂的点

RTTI性质的typeid()

上一篇下一篇

猜你喜欢

热点阅读