【发布时间】:2015-09-16 15:31:28
【问题描述】:
所以我编写了这个程序并且它可以工作,但是我被告知我需要使用迭代器来移动我编写的函数。我目前正在使用指针,但我认为它们基本上是相同的东西。如果有区别,如何使用迭代器?
更新: 所以我的理解是,与指针不同,迭代器将移动到列表中的下一个项目,即使该项目不是内存中的下一个项目?它是否正确?但是,它怎么知道移动到哪里呢?我编写了一个添加和删除节点的二叉树。在每个节点中都有指向两个子节点(或只有一个或没有)的指针,还有一个指向父节点的指针。在函数中,我递归地调用我正在使用的函数并传递新的指针。我觉得用迭代器替换我所拥有的应该很容易,但我仍然不确定。
更新 2: 我一直在阅读并尝试一些示例,现在我对如何声明迭代器感到困惑。我遇到的所有事情都像是我需要为迭代器创建另一个类。但是当我尝试时,我得到的只是编译器错误列表。任何帮助,将不胜感激。谢谢
【问题讨论】:
-
指针指向迭代器就像苹果指向水果一样。不过,有时你想要一杯梨苹果酒。
-
简单的区别:C没有迭代器。
-
那么我将如何使用迭代器来替换我拥有的指针?
-
如果您的程序已经可以运行,为什么还需要使用迭代器?
-
iterator 是 pointer 概念的抽象,具有 pointer-like 语义。 指针可以迭代连续的内存块,而迭代器可以用来迭代复杂的、任意排列的数据结构。