STL迭代器可分为五类:
struct input_iterator_tag{};
struct output_iterator_tag{};
struct forward_iterator_tag:public input_iterator_tag{};
struct bidirectional_iterator_tag:public forward_iterator_tag{};
struct random_access_iterator_tag:public bidirectional_iterator_tag{};
iterator_traits的两个部分实现:
template<typename IterT>
struct iterator_traits;
示例代码:
STL算法里面的函数advance的实现,其作用就是将某个迭代器移动某个距离,示例代码: