类别:迭代器 | 组件类型:类型 |
class my_forward_iterator : public forward_iterator<double> { ... };此声明my_forward_iterator为 Forward Iterator,其值类型为double且其距离类型为ptrdiff_t。如果Iter是类对象my_forward_iterator,那么iterator_category(Iter)将返回forward_iterator_tag(), value_type(Iter)将返回(double*) 0和distance_type(Iter)将返回(ptrdiff_t*) 0.
参数 | 说明 | 默认值 |
---|---|---|
T | 迭代器值类型 | |
Distance | 迭代器距离类型 | ptrdiff_t |
[1] 不需要 Forward Iterator 从基类继承forward_iterator。但是,需要为每个 Forward Iterator 定义函数iterator_category, distance_type和value_type。(或者,如果您使用iterator_traits机制,则iterator_traits对每个 Forward Iterator 都进行适当的专门化。)由于这些函数是为基类定义的,因此确保为新类型定义函数的最简单方法是从forward_iterator派生该类forward_iterator并依靠函数参数的派生到基准标准转换。