iterator 相关问题

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

find() 无法识别我的自定义迭代器

我为简单的文本编辑器编写了一个名为 Text_Iterator 的自定义迭代器。然而,STL 算法(例如 find())不会将其识别为合法的迭代器。 我的代码是: 使用 Line = std::vector<

回答 1 投票 0

不明白 std::iterator 在列表初始化中如何工作

我在使用 std::vector::iterator 时遇到问题。首先我定义了一个结构体: 模板 结构体 VecIter { VecIter(std::向量::迭代器 &&it_, size_t left_): ...

回答 1 投票 0

使用迭代器循环遍历 HashMap 不会因 if 条件而停止

HashMap 有 10 个条目,但我只想打印 3 个条目。 代码: HashMap hm = new HashMap(); hm.put(2, 1); hm.put(5, 3); 嗯.p...

回答 2 投票 0

使用迭代器循环遍历 hashMap 不会因 if 条件而停止

hashMap 有 10 个条目,但我只想打印 3 个条目。 代码:- HashMap hm = new HashMap(); hm.put(2, 1); hm.put(5, 3); 嗯.p...

回答 2 投票 0

跳出Vec::retain()?

我想迭代一个 Vec 对其中的对象执行各种操作(这比使用更复杂),并且,如果命令停止迭代,则仅保留 h...

回答 1 投票 0

迭代器的谓词返回Result<bool, E>,如何停止迭代并返回错误

类型 E = 字符串; fn helper() -> 结果 { 令 pred = |x| -> 结果 { 如果 x % 3 { 好的(x%2) } 别的 { Err("错误&qu...

回答 1 投票 0

C++ 中的二叉树迭代器适用于 T=int,但不适用于 T=std::string

我用C++实现了一个带有迭代器的二叉树。但是,只有当模板参数 (T) 设置为 int 时,它才能正确运行。当尝试使用 std::string 作为项目时...

回答 1 投票 0

如何重置迭代器?

我正在学习迭代器/生成器,并且想知道是否有办法让迭代器自行重置?就像在调用最后一个 .next() 之后有没有办法让它重新启动? 功能

回答 4 投票 0

在 Rust 中迭代切片的值而不是引用?

当循环遍历结构体切片时,我得到的值是一个引用(这很好),但是在某些情况下,在很多地方必须将 var 写为 (*var) 很烦人。 有没有更好的方法避免...

回答 2 投票 0

从标准 I\O 流读取和写入会导致错误

为什么这会导致我的程序以以下退出代码结束 双端队列 di((istream_iterator(cin)), (istream_iterator())); 复制(di.begin(),di.end(),ostream_iterator&l...

回答 1 投票 0

如何使用 Rayon 并行化 iter::from_fn 上的迭代?

我有一个函数,用于使用 iter::from_fn 生成迭代器,如本答案中所述。 fn 生成迭代器<'a>( some_arg: &'a [输入类型], ) -> 实现迭代器&l...

回答 1 投票 0

如何将值传递给迭代器

在JavaScript中,我们有yield运算符,它能够返回一个通过next()方法可选地提供给生成器的值。从下一个开始: 参数 值 可选 要发送到

回答 1 投票 0

std::map::iterator 返回值的副本还是值本身?

我正在尝试在地图中创建地图: typedef 映射 inside_map; typedef 映射 外层映射; 我可以在内部映射中放入一些东西吗,或者迭代器::

回答 5 投票 0

地图闭合求和的问题

我正在 AoC 上工作来学习 Rust,并一直在尝试根据我看到的更有经验的 Rust 程序员编写的内容拼凑出一个解决方案。 下面似乎完全编译,除了我有一个...

回答 1 投票 0

改变列表c++的顺序

如果我定义了一个项目列表,并且我想更改或更改所选项目之一在列表中的顺序,我该如何实现? 函数的定义应该如下...

回答 1 投票 0

在单个链表中向上移动项目 C++

如果我定义了客户列表,并且我想更改或“上移”列表中选定的客户,我该如何实现? 函数的定义应该如下...

回答 1 投票 0

逐行读取大文件

我正在尝试基于 Clojure 中的迭代编写大文件阅读器。但是如何在 Clojure 中逐行返回字符串呢?我想做这样的东西: (println(do_something(readFil...

回答 4 投票 0

为什么是reverse_iterator::base偏移量?

+-- v.begin() +-- v.end() | | 伏 +---+---+---+---+---+---+ - + |哦|哦|哦|哦|哦|哦| x| +---+---+---+---+---+---+...

回答 2 投票 0

按降序对向量进行排序

我应该使用 std::sort(numbers.begin()、numbers.end()、std::greater()); 或者 std::sort(numbers.rbegin(),numbers.rend()); // 注意:反向迭代器 按降序对向量进行排序或...

回答 12 投票 0

PHP/Laravel 递归概述文件

我有递归迭代器概述,我获得了所有文件以及所有目录。我只想要文件的概述。 我有下面的代码: 我有递归迭代器概述,我获得了所有文件以及所有目录。我只想要文件的概述。 我有下面的代码: <?php $root = '/xampp/htdocs/systeembeheer/Storage/download/'; $iter = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($root, RecursiveDirectoryIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied" ); $paths = array($root); foreach ($iter as $path => $dir) { if ($dir->isDir()) { $paths[] = $path; } } ?> 您可以使用文件(Illuminate\Support\Facades\File)外观: foreach (File::allFiles($root) as $file) { // $file->getFilename() } API:https://laravel.com/api/5.2/Illuminate/Contracts/Filesystem/Filesystem.html 没有 Laravel 特定的方法以内存有效的方式迭代目录。 RecursiveDirectoryIterator 和 RecursiveIteratorIterator 的组合将起作用: $path = storage_path('some-path'); // example $directoryIterator = new RecursiveDirectoryIterator($path); $iteratorIterator = new RecursiveIteratorIterator($directoryIterator); foreach ($iteratorIterator as $fileInfo) { var_dump($fileInfo->getPathname()); } 如果你不关心内存,比如当你确定你的目录不包含很多文件时,你可以使用File::allFiles($path),就像Winogronko提到的那样。

回答 2 投票 0

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