标签: iterator

如何从生成器中选择一个项目(在python中)?

我有一个如下的生成器函数:

def myfunct():
  ...
  yield result
Run Code Online (Sandbox Code Playgroud)

调用此函数的常用方法是:

for r in myfunct():
  dostuff(r)
Run Code Online (Sandbox Code Playgroud)

我的问题是,有什么方法可以随时从发电机中获取一个元素吗?例如,我想做类似的事情:

while True:
  ...
  if something:
      my_element = pick_just_one_element(myfunct())
      dostuff(my_element)
  ...
Run Code Online (Sandbox Code Playgroud)

python iterator generator python-2.x

189
推荐指数
4
解决办法
12万
查看次数

为什么在C++ 11中使用非成员开始和结束函数?

每个标准容器具有beginend方法,返回的迭代器是容器.然而,C++ 11显然已经引入自由函数调用std::beginstd::end该调用beginend成员函数.所以,而不是写作

auto i = v.begin();
auto e = v.end();
Run Code Online (Sandbox Code Playgroud)

你会写的

using std::begin;
using std::end;
auto i = begin(v);
auto e = end(v);
Run Code Online (Sandbox Code Playgroud)

在他的演讲中,编写现代C++,Herb Sutter说当你想要容器的开始或结束迭代器时,你应该总是使用自由函数.但是,他没有详细说明你想要的原因.查看代码,它可以为您节省一个字符.因此,就标准容器而言,自由函数似乎完全没用.Herb Sutter表示非标准容器有好处,但他再次没有详细说明.

因此,问题是除了调用相应的成员函数版本之外,自由函数版本究竟做了什么,std::begin并且std::end做了什么,为什么要使用它们呢?

c++ iterator stl c++11 container-data-type

185
推荐指数
6
解决办法
3万
查看次数

cbegin/cend背后的原因是什么?

我想知道为什么cbegincend在C++ 11中引入?

什么情况下使用这些方法时,使得从常量重载的差异beginend

c++ iterator const-correctness const-iterator c++11

182
推荐指数
5
解决办法
5万
查看次数

迭代器和迭代之间有什么区别以及如何使用它们?

我是Java新手,我真的很困惑iterator和iterable.任何人都可以向我解释并举一些例子吗?

java iterator iterable

178
推荐指数
7
解决办法
12万
查看次数

为什么Java的迭代器不是Iterable?

为什么Iterator界面没有扩展Iterable

iterator()方法可以简单地返回this.

它是故意还是只是对Java设计师的监督?

能够使用像这样的迭代器的for-each循环会很方便:

for(Object o : someContainer.listSomeObjects()) {
    ....
}
Run Code Online (Sandbox Code Playgroud)

where listSomeObjects()返回一个迭代器.

java iterator iterable

172
推荐指数
7
解决办法
5万
查看次数

将迭代器转换为列表的最快方法

有一个iterator对象,有没有比列表理解更快,更好或更正确的东西来获取迭代器返回的对象列表?

user_list = [user for user in user_iterator]
Run Code Online (Sandbox Code Playgroud)

python iterator list-comprehension

165
推荐指数
3
解决办法
8万
查看次数

Ruby:如何迭代一个范围,但是以增量为单位?

所以我在这样的范围内迭代:

(1..100).each do |n|
    # n = 1
    # n = 2
    # n = 3
    # n = 4
    # n = 5
end
Run Code Online (Sandbox Code Playgroud)

但我想做的是迭代10.

因此,不是增加n1,而是下一个n实际上是10,然后是20,30等.

ruby iterator increment

147
推荐指数
4
解决办法
12万
查看次数

迭代器 - >第二个意思是什么?

在C++中,a的类型是std::map<>::iterator什么?

我们知道it类型的对象std::map<A,B>::iterator有一个重载operator ->,它返回一个std::pair<A,B>*,并且std::pair<>有一个firstsecond成员.

但是,这两个成员对应的是什么,为什么我们必须访问存储在地图中的值it->second

c++ iterator stl

146
推荐指数
2
解决办法
16万
查看次数

创建我自己的迭代器

我正在努力学习C++,请原谅我,如果这个问题表明缺乏基础知识,你看,事实是,我缺乏基础知识.

我想要一些帮助来解决如何为我创建的类创建迭代器.

我有一个'Shape'类,它有一个容器点.我有一个类'Piece'引用一个Shape并定义Shape的位置.Piece没有Shape它只是引用一个Shape.

我希望它看起来像是一个Points的容器,它与它引用的Shape相同,但是添加了Piece的位置的偏移量.

我希望能够遍历Piece的点,就像Piece本身就是一个容器一样.我已经做了一点阅读,但没有找到任何帮助我的东西.我会非常感谢任何指针.

c++ iterator

141
推荐指数
4
解决办法
10万
查看次数

Python迭代器中的hasNext?

有没有Python迭代器得到一个hasNext方法?

python iterator

141
推荐指数
7
解决办法
11万
查看次数