iterator 相关问题

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

在 C++20 之前如何最好地模拟连续存储检查?

C++20 添加了 contigously_iterator 特征,我可以(?)在容器的迭代器上使用它来确定它是否具有连续存储。 但是 - 如果我只能依赖 C++11 怎么办?最接近的是什么...

回答 1 投票 0

为现有列中的每个唯一值创建一个新列,以及如何将函数应用于新列的值

我正在尝试为 cluster_ids 列中的每个唯一值创建一个新列。另外,在新列中,其创建并保留的相应“cluster_id”的值应为 1...

回答 1 投票 0

Python3 - iter 内置方法是否尽可能对集合元素进行排序?

iter 方法从无序集合生成有序集合,如下所示。这个排序结果是 Python 3 有保证的行为吗? x = {1, 9, 2, 8, 4, 6} y = 迭代器(x) 列表(y) ----- [1,2,4,6,...

回答 1 投票 0

作为成员的迭代器引用

我需要实现对迭代器的引用。 我知道这看起来很奇怪。但是这个要求是需要的,因为迭代器在几个函数调用中被更改(升级),我需要......

回答 1 投票 0

从末尾到开头迭代 C++ 向量

是否可以从末尾迭代一个向量到开头? for (vector::iterator i = my_vector.end(); 我!= my_vector.begin(); /* ?! */ ) { } 或者说只有这样才可能...

回答 13 投票 0

为什么btreemap的iter没有实现count?

在此输入图像描述 只实现了部分功能,count应该很容易实现。只需返回长度。为什么要用下一个? 我很想知道有关迭代器设计的一些细节,...

回答 1 投票 0

如何使用 std::move_iterator 从向量中删除元素?

这是一个 Josephus 排列问题,它是通过使用 std::move() 解决的,但现在我必须切换到使用 std::move_iterator (通过使用 std::make_move_iterator()) 但是,这不能编译:

回答 1 投票 0

为什么这个LRU缓存的实现不起作用?

我在LeetCode上遇到了这个问题,需要我们以O(1)平均时间复杂度实现LRU缓存函数“get”和“put”。 我在这里尝试了类似的方法,在......

回答 1 投票 0

phpunit:重用数据提供者

我想针对整组文件的内容运行多个测试用例。我可以使用数据提供程序来加载我的文件,并使用相同的提供程序进行所有测试,如下所示: 类 mytest 扩展...

回答 1 投票 0

Python RuntimerError,RuntimeError('迭代期间字典改变了大小')

当我尝试将键、值插入字典时,此代码将引发,RuntimeError('字典在迭代期间更改了大小') 这是我的代码: #1. Delcare 字典 val 在这里 dict_plugin_info = {} #2. ...

回答 1 投票 0

铁锈使用过滤器扫描

我正在尝试从迭代器中删除一些外部可变状态 fn 主() { 让非递增: Vec = vec![1, 0, 2, 6, 3, 9]; 让 mut max_so_far = 0; 对于 non_increas 中的 val...

回答 1 投票 0

为什么我需要在 ListIterator 中调用 previous() 两次才能进行“反向”迭代?

我们知道ListIterator有next()和previous()方法,可以让我们双向遍历。所以我做了一个小程序来尝试一下。 List 歌曲 = new ArrayList<>();

回答 2 投票 0

我如何重构一个方法来擦除基于反向迭代器的元素以避免触发有关复制单个迭代器的警告?

我有一个方法,它接受一个 stl 反向迭代器,做一些工作,擦除元素,并返回一个指向下一个元素的迭代器。例如: #包括 std::向量 我有一个方法,它接受一个 stl 反向迭代器,做一些工作,擦除元素,然后返回一个指向下一个元素的迭代器。例如: #include <vector> std::vector<int> int_vector; using ReverseIteratorType = decltype(int_vector)::reverse_iterator; void do_stuff(); ReverseIteratorType erase_with_reverse_iter(ReverseIteratorType iter) { do_stuff(); std::advance(iter, 1); int_vector.erase(iter.base()); return iter; } 编译时不会出现警告,并且看起来工作正常。问题是,当使用 libstdc++ 运行此代码以验证每个迭代器在使用时是否有效时,如果 iter 指向集合的最后一个元素,则会引发异常,因为迭代器在擦除后被视为单个迭代器,并且不允许调用单个迭代器的复制构造函数。 (这里的另一篇文章对这个问题有更深入的解释。). godbolt 示例在此演示了该问题 两个问题 禁止复制单个迭代器是否违反了标准,或者这是 libstdc++ 的健全性检查? 您将如何重构以避免这个问题? 你不应该忽略erase()的返回值。 erase() 使擦除元素处及其之后的元素的迭代器(以及指针和引用)无效(按容器顺序,而不是迭代器顺序。这包括作为参数传入的迭代器。

回答 1 投票 0

在 Rust 中为具有字段 HashSet 的结构实现迭代器

我喜欢为 struct FileSystem 实现一个迭代器: pub 结构文件系统 <'a> { 文件系统:哈希集::, 迭代器: hash_set::Iter<'a,FileContent>, } 暗示<...

回答 1 投票 0

python:filter()一个可迭代的,计算过滤和未过滤的项目

我有一个很大的Iterable。 我想使用 filter() 函数过滤它。 我如何计算(以某种优雅的方式)有多少项目被过滤? (同样的问题可能适用于 map()、reduce() 等) 我当然可以...

回答 4 投票 0

如何创建迭代器的副本? [重复]

我尝试使用赋值创建迭代器的副本,但是它创建了引用原始迭代器本身的迭代器的副本。例如: 我的列表 = [5, 4, 3,2] 第一个_it = iter(我的...

回答 1 投票 0

C++ 术语,表示可以通过 begin 和 end 进行迭代的对象

迭代器是可以迭代对象集合的事物的通用词。 另一方面,我不确定 C++ 中是否有一个普遍接受的词来表示集合本身,部分......

回答 1 投票 0

在文件系统上迭代的类对于 Python 迭代器协议来说是好还是坏?

我了解如何通过实现 __next__ 和 __iter__ 将类变成迭代器。网上有大量关于如何执行此操作的资源,例如:https://www.w3schools.com/python/python_iter...

回答 1 投票 0

修改指定值的范围“视图”

我正在嵌入式平台上实现许多音频效果。从硬件中,我获得了一个样本输入缓冲区,其格式需要一些调整 1,然后是过程本身,接下来...

回答 1 投票 0

使用引用的生成器时如何处理生命周期?

我目前正在致力于实现一个生成大量对象并返回它们的迭代器。由于这段代码有很多检查,我想使用 genawater 板条箱中的生成器,所以......

回答 1 投票 0

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