C++的STL的基本迭代器模型基本上包括"给我当前位置的项目"操作符*,"转到下一项"操作符++和用于检查(大多数时间)结束的谓词==/ !=迭代器.当然,还有各种随机访问的迭代器,但最基本的迭代器看起来如上所述.
相比之下,Java有next()和hasNext().接下来大致相当于使用++然后*.hasNext()就像比较结束一样.为什么Java没有采用C++模型(当然,它没有运算符重载所以它必须通过函数来模仿它)?特别是,为什么与方法的结束迭代器进行比较hasNext()?我觉得它往往很难用Java编写的迭代器比C++,因为背后的逻辑next()和hasNext()往往比一个在C++运算符更加复杂.
首先,您必须了解C++有指针,迭代器模拟指针.
Java没有指针,所有东西都是Java中的对象
C++交互器功能更强大.
请参阅上述评论中的重复答案.
| 归档时间: |
|
| 查看次数: |
1529 次 |
| 最近记录: |