gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:09 24 4
gpt4 key购买 nike

Iterator在Java中的实现与C++有何不同?

最佳答案

在当前的 C++ (98) 标准库中(特别是以前称为 STL 的部分)定义了一种非常接近 C 指针(包括算术)的迭代器形式。因此,他们只是指向某个地方。为了有用,您通常需要两个指针,以便您可以在它们之间进行迭代。我理解 C++0x 引入了更像 Java 迭代器的范围。

Java 在 1.2 中引入了 Iterator(和 ListIterator)接口(interface),很大程度上取代了更冗长的 Enumerable。 Java 没有指针算法,因此不需要表现得像指针。他们有一个 hasNext 方法来查看他们是否已经走到最后,而不是需要两个迭代器。缺点是它们不太灵活。系统需要方法作为 subList 而不是在两个迭代器之间迭代是包含列表中的特定点。

风格上的一般差异是,C++ 通过模板使用“静态多态性”,而 Java 使用接口(interface)和常见的动态多态性。

迭代器的概念是提供粘合剂以允许分离“算法”(真正控制流)和数据容器。这两种方法都做得相当好。在理想情况下,“正常”代码应该几乎看不到迭代器。

关于java - Java 和 C++ 中的迭代器有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/882855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com