Java Iterator等效于C? (带代码)
大家好.一位朋友为我编写了一些Java代码,我很容易将其转换为C,但我对C中的Java迭代器的等价物非常好奇.这是代码,我很可能希望将数据返回到向量中.任何帮助表示赞赏
再一次,任何有关如何适应C中单个函数(如果可能)的方案的帮助都会很棒.谢谢! 最佳答案 您对C迭代器有多熟悉?它们的设计看起来非常像指针,因此给定一个迭代器:
将增加迭代器(跳到下一个元素)
将取消引用迭代器(返回它指向的元素的引用)
将(如果它被定义)减少迭代器(返回上一个元素) 通常,C迭代器对它们所操作的容器一无所知.特别是,检查序列中是否还有更多元素的方法不是在迭代器上调用HasNext,而是将它与您知道指向序列末尾的迭代器进行比较. (或者,严格地说,将它与指向序列末尾的元素进行比较.) 除此之外,迭代器需要定义一些typedef和其他辅助内容,以帮助编译器对迭代器的功能进行分类和理解. 定义迭代器的最简单方法是使用Boost.Iterator库的iterator_facade类,它实现了几乎所有的管道.该库具有出色的文档,包括描述如何定义自己的迭代器类型的教程. 如果使用Boost是一个选项,你一定要去做.否则,标准库有std :: iterator也有一点帮助(但是,值得注意的是,不是必需的 – 迭代器可以完全有效地定义而不从这个类派生) 对不起,我没有写完一个完整的例子,但我现在有点急. (而且,如果你能够使用Boost,那么从头开始定义一个示例迭代器就会浪费时间).希望以上内容足以让您入门. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |