问题标签 [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.
java - 是否有合并的迭代器实现?
是否有合并多个迭代器的迭代器实现?
下一个方法应该转到iters[1]
when!iters[0].hasNext()
等
c++ - C++ STL 中的 const_iterator 和非 const 迭代器有什么区别?
const_iterator
a和 an有什么区别,iterator
你会在哪里使用一个而不是另一个?
c# - 找出给定长度的所有可能单词的好方法是什么
我正在尝试在 C# 中创建一个生成以下输出字符串的算法:
实现这一目标的最佳方法是什么?
c++ - 返回一个迭代器
我有一个搜索 STL 容器的函数,然后在找到位置时返回迭代器,但是我收到一些有趣的错误消息,能告诉我我做错了什么吗?
功能:
错误:
c# - 一些有助于理解“产量”
在我不断追求减少吸吮的过程中,我试图理解“屈服”声明,但我一直遇到同样的错误。
[someMethod] 的主体不能是迭代器块,因为 'System.Collections.Generic.List<AClass>' 不是迭代器接口类型。
这是我卡住的代码:
我究竟做错了什么?我不能在迭代器中使用 yield 吗?那有什么意义呢?在此示例中,它表示List<ProductMixHeader>
不是迭代器接口类型。
ProductMixHeader
是一个自定义类,但我想List
是一个迭代器接口类型,不是吗?
--编辑--
感谢所有快速回答。
我知道这个问题并不是那么新鲜,而且同样的资源不断涌现。
原来我在想我可以List<AClass>
作为返回类型返回,但由于List<T>
不是懒惰,它不能。更改我的返回类型以IEnumerable<T>
解决问题:D
IEnumerable<T>
一个有点相关的问题(不值得打开一个新线程):如果我确定 99% 的情况我都会去 .ToList() 是否值得作为返回类型?性能影响是什么?
c# - 迭代器中的副作用被认为是有害的?
我今天写了我的第一个 C# 迭代器。呜呼。
有趣的是,它有副作用。我的迭代器从目录中过滤掉无效文件并返回一系列有效文件进行处理。当它遇到一个无效文件时,它会将其移动到另一个目录。
我尝试将其实现为 LINQ 查询,但真的不喜欢 where 子句的谓词具有副作用的事实。那是确定的气味。
我可以明确地实现它,循环遍历所有文件并依次处理好或坏,但这不是很优雅。更好的解决方案是将其拆分为两个列表(好的和坏的)并依次处理每个列表。
但后来我想起了迭代器。我现在有了一个迭代器,它产生有效文件并处理(移动)无效文件。
所以,我的问题是:迭代器有这样的副作用是个坏主意吗?我是否在迭代器中隐藏了太多功能?
c++ - 在 gdb 中显示取消引用的 STL 迭代器
我有一个映射元素的迭代器,我希望 gdb 向我显示该迭代器的“第一个”和“第二个”元素的值。例如:
我可以在代码中使用 p.first 和 p.second,但在 gdb 中看不到它们。对于它的价值,在 dbx 中可以执行“print p.node.second_”之类的操作,但我可以在 gbd 中找到类似的任何内容。
我完全愿意有一个函数来传递对象类型,但我也无法让它工作。
有任何想法吗?谢谢!
python - 是否有一种“单线”方法可以按排序顺序从字典中获取键列表?
listsort()
方法是一个修饰函数,它返回None
.
因此,如果我想遍历字典中的所有键,我不能这样做:
相反,我必须:
有没有一种很好的方法可以按排序顺序遍历这些键,而不必将其分解为多个步骤?
c++ - C++ 中的列表迭代器不可递增错误消息
作为一个新手,我正在尝试使用列表类在 C++ 中实现排序功能。但是,运行代码时,我得到列表迭代器不可递增的错误......但是这似乎不太可能,因为它应该是可递增的!
代码:
我只是在 de CPP 文件中实现了这个功能,在 main.js 文件下。
有人有什么建议吗?