揭开五种主要迭代器的神秘面纱

ZDNet软件频道 时间:2003-10-10 作者:ZDNet China |  我要评论()
本文关键词:cpptips
标准模板库(The Standard Template Library, STL)定义了五种迭代器。本文是关于这些迭代器功能的简短说明。
本文译自Builder.com,未经许可请勿转载标准模板库(The Standard Template Library, STL)定义了五种迭代器。下面的图表画出了这几种:

input iterators         output iterators
                                     /
             forward iterators
                     |
             bidirectional iterators
                     |
             random access iterators

要注意,上面这图表并不是表明它们之间的继承关系:而只是描述了迭代器的种类和接口。处于图表下层的迭代器都是相对于处于图表上层迭代器的扩张集。例如:forward迭代器不但拥有input和output迭代器的所有功能,还拥有更多的功能。

下面是关于这些迭代器功能的简短说明:

Input 迭代器:允许向前递增迭代器而使其指向下一个元素(使用 ++ 操作符),并可以读取迭代器指向(使用 * 操作符)的数据。

Output迭代器:允许向前递增迭代器而使其指向下一个元素,并可以给迭代器指向的对象赋新值。

Forward迭代器:支持读、写操作;提供一个遍历方向。

Bidirectional迭代器:允许在两个遍历方向。

Random access迭代器:支持访问容器任意位置的算法操作。例如:

string::iterator it = s.begin();
char c = *(it+5); // skip five characters



责任编辑:炒饭

欢迎评论投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134