注册 登录
LUPA开源社区 返回首页

fandaozhang的个人空间 http://www.lupaworld.com/?381944 [收藏] [复制] [分享] [RSS]

我的博客

什么是迭代器?

已有 1542 次阅读2011-6-13 11:03 |系统分类:IT技术|

什么是迭代器?

Recap

 本人英文水平不是很好,这篇翻译,如有错误或不妥,请各位多多指教。谢谢,原文地址:

http://www.oreillynet.com/network/2005/10/18/what-is-iterator-in-c-plus-plus.html

When I buy fresh meat at my supermarket, I don't care how it got there. I want to start at one end of the refrigerated glass case and examine the contents of each bin until I'm at the other end. Along the way, if I see something on the other side of the glass that I want, I will summon the butcher to weigh it and pack it up. It makes no difference to me that the meat in one bin came from Montana, and another from a local farm. The interface is the important part; from one supermarket to another I know what to expect.

当我在超市买牛肉的时候,我不关心牛肉是从哪里来的(这个在现实生活里其实是要关心的)。我从一个摊位到另一个摊位直到超市的出口。在这个过程中,如果我看好某块牛肉,我就叫屠夫来称并且算钱。对我来说,我并不知道这个肉是从农场来的还是进口的。接口是一个重要的部分,我从一个超市到另一个超市我知道我期望什么。

 

Such is the case with the iterator pattern.

这个例子类似于迭代器模式。

The iterator pattern describes a set of requirements that allows a consumer of some data structure to access elements in it with a familiar interface, regardless of the internal details of the data structure.

迭代器模式是一个接口,它允许通过它提供的接口访问数据结构的元素,不用知道这个数据结构的内部实现。

 

The C++ standard library containers supply iterator interfaces, which makes them convenient to use and interoperable with the standard algorithms.

C++标准库的容器提供了迭代器接口。这可以让我们方便的使用容器 而且 这些容器与标准算法是“可互操作的”。(我的理解就是可以当作参数传递给算法函数,比如:find(str.begin,))

 

This is the first part of a two-part article. In this installment, I'll give a brief overview of the iterator pattern and what an iterator is in C++. In the second installment, I will show you how to implement your own iterator in the same manner as the standard library containers.

在这篇文章的第一部分,我先对迭代器模式及C++里的迭代器进行简要的描述。第二部分,我将向你展示如何实现一个自己的迭代器,而且是类似于标准容器的迭代器。

 

 

 

 已同步至 fandaozhang的微博

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部