我是C ++的新手。我想为我的用户定义类型创建一些迭代器。典型的C ++接口似乎是myType.begin()
来创建迭代器myType.end()
来创建另一个迭代器,它代表一个结束点,++iterator
前进,*iterator
访问当前项目。
但这是我面临的问题。首先,有多种方法可以迭代我的用户定义类型。 myType.begin()
如何知道要创建哪种类型?目前,我正在使用户自己创建迭代器作为传递myType
到构造函数中。它似乎运行良好,我唯一担心的是它似乎不符合C ++约定。
其次,如果myType
不知道要使用begin()
创建哪个迭代器,那么它肯定不知道要为end()
生成什么。目前,我正在使迭代器具有isDone()
方法。但同样,这似乎与C ++约定不相符。
思考?什么是创建迭代器集合的传统解决方案,它以不同的方式在同一类型中前进?
暂且不说:要获取迭代器的当前项目...... *iterator
或iterator.current()
?