如何创建以不同方式通过相同类型前进的迭代器集合

时间:2014-09-22 17:24:54

标签: c++ iterator

我是C ++的新手。我想为我的用户定义类型创建一些迭代器。典型的C ++接口似乎是myType.begin()来创建迭代器myType.end()来创建另一个迭代器,它代表一个结束点,++iterator前进,*iterator访问当前项目。

但这是我面临的问题。首先,有多种方法可以迭代我的用户定义类型。 myType.begin()如何知道要创建哪种类型?目前,我正在使用户自己创建迭代器作为传递myType到构造函数中。它似乎运行良好,我唯一担心的是它似乎不符合C ++约定。

其次,如果myType不知道要使用begin()创建哪个迭代器,那么它肯定不知道要为end()生成什么。目前,我正在使迭代器具有isDone()方法。但同样,这似乎与C ++约定不相符。

思考?什么是创建迭代器集合的传统解决方案,它以不同的方式在同一类型中前进?

暂且不说:要获取迭代器的当前项目...... *iteratoriterator.current()

0 个答案:

没有答案