iterator 相关问题

迭代器是一种面向对象的编程模式,允许遍历集合,不知道实际实现或物理内存中的对象地址。它是四人帮的行为设计模式之一。

有没有办法限制 Impl 块实现另一个特征?

我有一个特点 酒吧特质 LocationProvider 其中 T:进入> { fn get_location(&self, 时间: T) -> 选项; fn get_locations(&s...

回答 1 投票 0

如何在 Rust 中处理 Result<T> 的迭代器?

我有一个返回 Result 的迭代器。我目前这样使用它: 对于其中的 x { 让 xx = x?; ...(使用xx) } 没关系,但我想使用更优雅的迭代器链 id...

回答 1 投票 0

如何使函数接受所有类型的迭代器,但只专门化一种类型?

根据如何使构造函数接受所有类型的迭代器?我试图让一个函数接受来自不同容器类型的迭代器。与这个问题不同,我希望这些容器具有...

回答 2 投票 0

如何获得 Rust 中最大值元素的迭代器?

我想访问 Vec 中最大元素旁边的元素。我正在寻找这样的东西: 让 v = vec![1, 3, 2]; 让它= v.iter().max_element(); assert_eq!(Some(&2), it.n...

回答 4 投票 0

为什么我的 C++ 自定义迭代器类没有调用预自增运算符重载?

我正在尝试实现一个使用 AVL 树数据结构的自定义地图容器类。我已经具备了所有基本功能,并且一切正常。但当我试图创造必要的东西时......

回答 1 投票 0

在 Dart 迭代器中,如何在不使用 moveNext 的情况下告诉我是否存在当前值?

我想用一个函数扩展 Dart Iterator 类,该函数告诉我是否有可用的当前值。 我无法查看 Iterator.moveNext 的返回值,因为它有不需要的一面 -...

回答 1 投票 0

如何用Java实现过滤迭代器?

我已经创建了一个对象数组(tab[]),现在我需要通过它们的字段之一进行过滤和打印(例如 print if ob.a>1 )。我创建了一个迭代器接口 ArrayIterator 来遍历所有内容

回答 1 投票 0

根据迭代器的顺序向前或向后迭代

我有一个带有条目的 std::vector ,以及保证位于该向量中的两个条目 a 和 b 。我使用 std::find 来获取 a 和 b 向量中的迭代器 aIt 和 bIt 。但我不知道什么......

回答 1 投票 0

是否可以就地过滤向量?

我想从 Vec 中删除一些元素,但 vec.iter().filter().collect() 创建一个带有借用项的新向量。 我想改变原始的 Vec 而不需要额外的内存分配(并且 k...

回答 4 投票 0

当beg是迭代器时,使用&*beg而不是beg的原因是什么?

在 Bjarne Stroustrup 的《A Tour of C++》(C++20 第三版)一书中,第 18.5.2 节打包任务中,我们有这段代码: // 计算从

回答 1 投票 0

如何从范围创建 Vec 并对其进行洗牌?

我有以下代码: 外部板条箱兰特; 使用 rand::{thread_rng, Rng}; fn 主() { 让 mut vec: Vec = (0..10).collect(); 让 mut 切片:&[u32] = vec.as_mut_slice();

回答 3 投票 0

不允许指向不完整类类型的指针

由于某种原因,我无法使用附加到我想要使用的对象的函数。我向不起作用的行添加了注释。作为错误,我得到“错误;指向不完整类类型的指针不是

回答 6 投票 0

为什么 JS 生成器会在 take() 触底后终止?

今天我被 JS 生成器的一些行为绊倒了。在通过调用 take() 获取的 IteratorHelper 触底后,迭代器继续生成数字,但生成器应该符合...

回答 1 投票 0

为什么传递给map()的闭包不带引用,而传递给filter()的闭包带引用?

传递给map()的闭包不接受引用,而传递给filter()的闭包在Rust中接受引用。大多数迭代器适配器都会引用。 map() 这样做有什么原因吗...

回答 2 投票 0

更智能的方法来重载方法?

我有一个名为 Block 的类,它有一个 Draw 方法。我想创建一个函数来一次绘制一组块。由于有些组是数组,有些是列表,我必须添加一个重载

回答 1 投票 0

如何通过pandas数据框中的记录迭代计算相对强弱指数(RSI)

我创建了一个 pandas 数据框,如下所示: 将 pandas 导入为 pd 将 numpy 导入为 np ds = { '趋势' : [1,1,1,1,2,2,3,3,3,3,3,3,4,4,4,4,4], '价格' : [23, 43,56,21,43,55,54,32,9,12,11,12,23,3,2,...

回答 1 投票 0

如何迭代 DataFrame 的行?

我有这个代码: df = pd.DataFrame(data, columns = ['姓名','New_addy','电话1','电话2','电子邮件']) def QuestioningMech(df): 对于 df 中的 x: 打印(df[x]) 所以我正在尝试迭代...

回答 2 投票 0

Java Iterator.hasNext() 始终为 true

我已经检查过像这样的其他问题,但似乎我并不总是创建一个新的迭代器来检查始终相同的对象。 这是代码 迭代器 我已经检查过其他问题比如这个问题,但我似乎并不总是创建一个新的迭代器来检查始终相同的对象。 这是代码 Iterator<Map.Entry<Node, Float>> it = graph.nodeNeighboursIterator(e); System.out.println("extracted node "+ e.getLabel() + " number of neighbours "+ e.sizeNeighbours()); while(it.hasNext()) { System.out.print(i + " " + e.getLabel() + " " + it +"-"); i++; } 方法graph.nodeNeighboursIterator可以做到这一点 public Iterator<Map.Entry<Node, Float>> nodeNeighboursIterator(Node n) { return this.graph_weighted.get(n).entrySet().iterator(); } System.out.println("extracted node "+ e.getLabel() + " number of neighbours "+ e.sizeNeighbours());打印了正确的邻居数量,但循环仍然没有结束他的循环,你对此有何看法? it.hasNext() 检查是否还有更多数据要返回。这不会消耗数据(换句话说,不会迭代数据)。此操作是幂等。 这就是循环永远不会结束的原因。 您需要通过调用it.next()来实际消费数据。如果没有更多元素可返回,则it.hasNext()返回 false。 您需要修改您的代码以如下所示 while(it.hasNext()) { it.next(); } 需要注意的一点是,即使您只是在循环中使用 System.out.println(it.next()); 语句打印元素,迭代器也会打印当前元素并移至下一个元素。因此没有明确需要在循环中调用 it.next();。

回答 3 投票 0

std::swap 返回 0xBAADF00D

我正在尝试在 Visual 2005 下交换两个 std::list< dontcare* >::iterators。 迭代 it1 = ... ,it2 = ...; // it1 和 it2 都可以,不是 end() 之类的 如果(...){ std::swap(it1,it2); } 交换工作...

回答 4 投票 0

程序突然结束,使用迭代器迭代二维向量

我正在更新一个距离矩阵,如果边缘存在于边缘向量中,该距离矩阵计算未加权图中两个节点之间的距离。 Edges 是一个二维向量,每个元素的大小为 2 wh...

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.