问题标签 [iterator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3610 浏览

c++ - 为什么我不能在地图中放置迭代器?

我有一张这样定义的地图

还有一个名为“mHugeString”的巨大字符串。然后我遍历字符串收集迭代器,如下所示:

最后我应该收到一个映射,其中迭代器与某种键相关联。但是迭代器在通过“make_pair”与键配对时会以某种方式失去自己,除非它指向字符串末尾的某个位置。很难说,但也许最后 256 个字节没问题。

所以问题不在于如何避免丢失迭代器,无论如何存储它们是一个愚蠢的主意,但为什么尝试在字符串开头存储迭代器会失败,为什么最后的迭代器也能正常工作?它们之间有什么区别?

0 投票
2 回答
3735 浏览

php - PHP RecursiveIteratorIterator 和嵌套集

我在层次结构中有一组对象。有一个顶部的“根”节点,它具有子节点,子节点又具有子节点等。我正在尝试使用嵌套集模型将此结构保存到数据库中,其中每个节点的每个“边”都被编号以定义层次结构,如在 MySQL 中管理分层数据

替代文字
(来源:mysql.com

我的问题是计算左右值。我通常使用 RecursiveIteratorIterator 来遍历层次结构,但是如果不求助于通过引用解析索引变量的递归函数,我无法弄清楚如何计算数字。

有任何想法吗?

这可能没用,但这是我目前拥有的(不正确的)代码:

如您所见,这将给出如下结果:

左右值:

当他们应该是:

0 投票
2 回答
2097 浏览

recursion - 没有递归的复合模式迭代器

有没有人写过或考虑过在不使用递归的情况下为复合(树)结构编写迭代器?如果是这样,你能分享你的想法吗?谢谢

编辑:我正在考虑使用 Java 语言。

0 投票
3 回答
2699 浏览

c# - 在 C# 中链接 IEnumerables?

有没有一种简单的内置方法来获取一个有序的IEnumerables 列表并返回一个IEnumerable,它按顺序产生第一个中的所有元素,然后是第二个,依此类推。

我当然可以自己写,但我想知道在我做之前是否已经有办法完成这个看似有用的任务。

0 投票
5 回答
212 浏览

c++ - 优化迭代器定义

这是一个(希望如此)非常简单的问题——最近有人告诉我,使用 C++ 风格的初始化比传统的(更常见的)赋值要好。

所以这段代码:

将比以下“慢”或效率低:

我理解这样做的原因 - 第一个示例导致默认构造和初始化,然后是后续分配,而不是第二个示例中的特定构造和直接分配。但是,在现代处理器/编译器上,它真的有什么不同吗?

0 投票
10 回答
72542 浏览

c++ - 检查值存在于 std::map - C++

我知道find方法在std::map中找到提供的键并将迭代器返回到元素。反正有没有找到值并获得元素的迭代器?我需要做的是检查 std::map 中是否存在指定的值。我通过循环地图中的所有项目并进行比较来做到这一点。但我想知道有没有更好的方法。

这是我写的

编辑

如何在内部使用另一个存储值、键组合的地图。所以我可以调用 find 吗?std::map 中的find()是否进行顺序搜索?

谢谢

0 投票
7 回答
6066 浏览

java - 有效地遍历哈希图中的所有 MATCHING 键?

HashMap有数百万个条目。

需要检索其键与一组特定条件匹配的所有条目(在这种情况下,每个键都是具有两个整数属性的对象;我需要检索其中每个整数都在指定范围内的所有键)。

迭代所有这些键的最快、最有效的方法是什么?

更新: 在这种特殊情况下,虽然我没有预先指定它,但键中的第一个整数自然优先于第二个整数。

0 投票
2 回答
553 浏览

php - 从另一个迭代器的结果创建新的迭代器

我正在尝试在 PHP 5 中有效地使用迭代器,并且在网络上没有很多像样的示例,事实证明这有点困难。

我正在尝试遍历一个目录,并读取其中的所有(php)文件以搜索定义的类。然后我想要做的是返回一个关联数组,其中类名作为键,文件路径作为值。

通过使用 RecursiveDirectoryIterator(),我可以通过目录递归。通过将其传递给 RecursiveIteratorIterator,我可以将目录的内容作为一维迭代器检索。然后在此使用过滤器,我可以过滤掉所有目录和非 php 文件,这些文件只会留下我想要考虑的文件。

我现在想要做的是能够将此迭代器传递给另一个迭代器(不确定哪个合适),这样当它遍历每个条目时,它可以检索一个需要组合成主数组的数组。

解释起来有点复杂,所以这里有一个代码示例:

正如你从这个例子中看到的那样,我有点劫持了 FilterIterator 的 accept() 方法,我知道这是完全不正确的用法 - 但我只是用它作为一个例子来演示我只想如何调用一个函数,并让它返回一个合并到主数组中的数组。

目前我在想我将不得不使用其中一个 RecursionIterators,因为这似乎是他们所做的,但我不喜欢使用两种不同方法(hasChildren() 和 getChildren( )) 来实现目标。

简而言之,我试图确定我可以使用(或扩展)哪个迭代器来让它传递对象的一维数组(?),并让它将结果数组组合成一个主数组并返回它.

我意识到还有其他几种方法可以解决这个问题,比如:

但这违背了使用迭代器的目的,并且作为解决方案也不是很优雅。

无论如何,我希望我已经解释得足够好。感谢您阅读本文,并提前为您解答:)

0 投票
14 回答
16723 浏览

c# - C# 或滑动窗口枚举器中的成对迭代

如果我有一个像这样的 IEnumerable:

我想遍历所有成对的连续项目(大小为 2 的滑动窗口)。这将是

我的解决方案是这样

当我编写这段代码时,我想知道 .NET 框架中是否已经有函数可以做同样的事情,而且不仅适用于对,而且适用于任何大小的元组。恕我直言,应该有一种很好的方法来执行这种滑动窗口操作。

我使用 C# 2.0,我可以想象使用 C# 3.0(w/LINQ)有更多(更好)的方法可以做到这一点,但我主要对 C# 2.0 解决方案感兴趣。不过,我也会欣赏 C# 3.0 解决方案。

0 投票
5 回答
9829 浏览

c++ - 向量、迭代器和 std::find

有没有办法在不同的向量中使用不同类型的迭代器?或者,是否有一个函数可以将向量中元素的位置作为整数返回?

这是一些示例代码,有人有任何指示吗?