C++迭代器模型与Java Iterator模型

gex*_*ide 2 c++ java iterator

C++的STL的基本迭代器模型基本上包括"给我当前位置的项目"操作符*,"转到下一项"操作符++和用于检查(大多数时间)结束的谓词==/ !=迭代器.当然,还有各种随机访问的迭代器,但最基本的迭代器看起来如上所述.

相比之下,Java有next()hasNext().接下来大致相当于使用++然后*.hasNext()就像比较结束一样.为什么Java没有采用C++模型(当然,它没有运算符重载所以它必须通过函数来​​模仿它)?特别是,为什么与方法的结束迭代器进行比较hasNext()?我觉得它往往很难用Java编写的迭代器比C++,因为背后的逻辑next()hasNext()往往比一个在C++运算符更加复杂.

Dor*_*don 5

首先,您必须了解C++有指针,迭代器模拟指针.

Java没有指针,所有东西都是Java中的对象

C++交互器功能更强大.

请参阅上述评论中的重复答案.

C++(stl)与Java中的迭代器是否存在概念上的差异?

Java和C++中的迭代器有什么区别?

我建议你阅读如何在Java中处理对象 - Java中的对象