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