iterator 相关问题

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

我需要对 JavaScript Iterables 进行深入的解释。 [已关闭]

为什么我们需要它们以及如何使用它们以及将 Iterable 功能添加到没有它的对象中。这似乎是一个一般来说只是被略过的话题。

回答 1 投票 0

Symbol.iterator 在调用时神秘地更改为 null 或未定义

我有一个包装数组的 JavaScript 类。班级看起来像这样。 类商店{ 构造函数(){ this._store = []; } } 我正在尝试定义一个 Symbol.iterator,所以

回答 1 投票 0

在迭代列表时将元素添加到列表中。 (Java)[重复]

我的问题是,我想在迭代列表时用新元素扩展列表,并且我希望迭代器继续使用我刚刚添加的元素。 根据我的理解,ListIterator......

回答 3 投票 0

C++ STL 中 const_iterator 和非常量迭代器有什么区别?

const_iterator 和 iterator 之间有什么区别?你会在哪里使用其中一个?

回答 7 投票 0

为什么我不能将双反转迭代器与普通迭代器进行比较?

考虑以下代码: #包括 #包括 #包括 #包括 模板 布尔 foo(const

回答 1 投票 0

使用无容器迭代器和并行 std::for_each 的 3D 索引迭代器

我正在寻找一个与 std::ranges::views::iota 非常相似的迭代器,但使其在 3D 中工作。它下面不会有容器,因为我不需要保存索引...

回答 1 投票 0

迭代器作为集合中使用的变量数据类型

我想使用迭代器作为集合中的变量类型,我们假设是映射。 我试过这个: #包括 #包括 使用命名空间 std; 无效 f () {

回答 1 投票 0

在 grep 克隆中使用 std::future 与 std::thread

我最近写了一个 grep 克隆。它对指定目录的所有文件进行字符串查询的递归搜索。程序的核心是如下所示的函数。 /** 递归搜索 q...

回答 1 投票 0

反转reverse_iterator是否应该给出原始类型的前向迭代器?

我天真地期望这个程序能够编译并以成功状态运行: #包括 #包括 int main() { const std::string s = "foo"; 自动forward_iter = s...

回答 2 投票 0

为什么对象被认为是不可迭代的,尽管它们实际上是可迭代的?

PHP 7.1 添加了新的 is_iterable 函数来检查变量是否可以迭代。但是,尽管您可以迭代对象属性,但 is_iterable 会为它们返回 false。 这好像是

回答 1 投票 0

我们如何正确使用AsyncIterator

我正在尝试定义一个 AsycIterator 并使用它。定义作品但使用它一直是一个问题。这是我的代码,请注意与问题无关的其他代码已被删除 那个...

回答 1 投票 0

对一系列 std::vector 元素的常量引用

我想从 std::vector 获取一系列元素并将它们存储为 const 引用,因为我只想读取但不想修改它们。 #包括 #包括 我想从std::vector<MyClass>获取一系列元素并将它们存储为常量引用,因为我只想读取但不想修改它们。 #include <iostream> #include <vector> // a "large" user class class MyClass { public: int data; MyClass(int val) : data(val) {} }; int main() { // Initialize vector to MyClass objects std::vector<MyClass> myClass{1, 2, 3, 4, 5, 6, 7, 8}; // Get const reference to element with index 0 const auto &el = myClass[0]; // Get const references to a range of elements const unsigned int start = 1, end = 4; // const auto &elRange = ??? return 0; } 我怎样才能实现这样的目标? 我想从 std::vector 获取一系列元素并将它们存储为 const 引用,因为我只想读取但不想修改它们。 最好是使用 std::span,这需要 c++20 支持。 否则,您可以编写一个简单的 SimpleSpan 类来执行此操作。最简单的就像: // A simple span-like class for C++17 template<typename T> class SimpleSpan { T* data_; std::size_t size_; public: constexpr SimpleSpan(T* data, std::size_t size) : data_{ data }, size_{ size } {} constexpr T& operator[](std::size_t index) { return data_[index]; } constexpr T& operator[](std::size_t index) const { return data_[index]; } constexpr T* begin() { return data_; } constexpr T* end() { return data_ + size_; } constexpr T* begin() const { return data_; } constexpr T* end() const { return data_ + size_; } constexpr std::size_t size() const { return size_; } }; 而且只是 // Get const references to a range of elements using our SimpleSpan const unsigned int start = 1, end = 4; SimpleSpan<const MyClass> elRange(&myClass[start], end - start); 观看现场演示 std::跨度 const auto elRange = std::span(&myClass[1], &myClass[4]); 这就是 std::span 的用途,但您需要 C++20。 如果你被困在较小的 C++ 版本上,你可以使用 boost::span。 (它需要 2 个标头才能包含在项目中,您不需要整个 boost 库) auto elements = boost::span<const MyClass>{myClass}.subspan(start, end-start); C++17 godbolt 示例

回答 3 投票 0

c++ 获取对一系列 std::vector 元素的 const 引用

#包括 #包括 // 一个“大”用户类 类我的类{ 民众: 整数数据; MyClass(int val) : 数据(val) {} }; int main() { // 初始化 ve...

回答 1 投票 0

无法索引`std::fs::ReadDir`类型的值

我正在尝试获取目录中第一个条目的路径,但似乎 read_dir 响应类型 ReadDir 是一个迭代器,无法索引,例如 fn get_single_file_or_none(dir_path: &Pa...

回答 1 投票 0

获取 LinkedHashMap 的子集并保留顺序

与 HashMap 不同,LinkedHashMap 中的顺序很重要。这里的顺序是插入顺序。 假设我有一个如下所示的 LinkedHashMap (从上到下排序,左侧部分是关键,右侧部分...

回答 4 投票 0

获取 LinkedHashMap 的子集并保留顺序

与 HashMap 不同,LinkedHashMap 中的顺序很重要。这里的顺序是插入顺序。 假设我有一个像下面这样的 LinkedHashMap (从上到下排序,左边是键,右边是...

回答 3 投票 0

C++ 中两个迭代器之间的数学运算如何工作?

我是 C++ 新手,正在尝试了解迭代器。到目前为止,我已经了解到迭代器就像指针一样,可用于遍历线性数据结构的元素。但我...

回答 2 投票 0

使用指针引用元组元素数据:指针是否保证在元组生命周期内保持有效?

我有一个由用户定义类型组成的元组,它们都具有相同的双成员: 模板 结构体foo { int 值 = 3 * N; // 这里只使用模拟默认值。 }; 使用 my_t...

回答 1 投票 0

我可以对迭代器进行子集化并保持它是迭代器吗?

我有一个用例,我需要布尔值的排列。然而,当它们颠倒时我不需要它们。所以我可以做这样的事情: 导入迭代工具 [ p 为 p in itertools.pro...

回答 1 投票 0

如何打印生成器表达式?

在 Python shell 中,如果我输入列表理解,例如: >>> [x for x in string.letters if x in [y for y in "BigMan on Campus"]] 我得到了一个很好打印的结果: ['a','c','g','i',...

回答 8 投票 0

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