SGI

bidirectional_iterator<T, Distance>

类别:迭代器 组件类型:类型

描述

双向迭代器是一个迭代器基类:它意在用于定义一个符合 双向迭代器 模型的迭代器,且其值类型和距离类型分别为TDistance,可以通过继承自bidirectional_iterator<T, Distance> [1]. 双向迭代器完全为空:它没有成员函数、成员变量或嵌套类型。它的存在仅仅是为了简化函数的定义iterator_category, distance_typevalue_type.

示例

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*) 0distance_type(Iter)将返回(ptrdiff_t*) 0.

定义

定义在标准头文件 iterator 中,以及非标准的向后兼容头文件 iterator.h 中。此类不再是 C++ 标准的一部分,尽管它存在于标准的早期草案中。为了向后兼容,它在该实现中被保留。

模板参数

参数 描述 默认值
T 迭代器的值类型  
Distance 迭代器的距离类型 ptrdiff_t

模型

可赋值

公共基类

类型要求

距离类型必须是带符号整型。

公共基类

无。

成员

无。

新成员

无。

备注

[1] 不需要一个 双向迭代器 继承自基类bidirectional_iterator。但是,需要为每个 双向迭代器 定义函数iterator_category, distance_typevalue_type。(或者,如果您使用的是iterator_traits机制,则iterator_traits对每个 双向迭代器 进行了适当的专门化。)由于这些函数是在基类bidirectional_iterator中定义的,因此确保这些函数对新类型定义的最简单方法是将该类从bidirectional_iterator派生,并依靠函数参数的派生到基类的标准转换。

另请参阅

迭代器标签 概述,iterator_traits, iterator_category, value_type, distance_type, input_iterator, output_iterator, forward_iterator, random_access_iterator
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息