iterator相关内容

迭代地图时++it或it++?

显示如何迭代 std::map 的示例通常是这样的: MapType::const_iterator end = data.end();for (MapType::const_iterator it = data.begin(); it != end; ++it) 即它使用 ++it 而不是 it++.有什么理由吗?如果我改用 it++ 会有什么问题吗? 解决方案 测试了一下,我做了三 ..
发布时间:2022-01-10 15:04:04 C/C++开发

ruby 中的 .each 迭代器是否保证每次都对相同的元素给出相同的顺序?

我正在用列表“a"做这样的事情: a.each_with_index |outer, i|a.each_with_index |内部,j|如果(j > i)# 对外部和内部做一些操作结尾结尾结尾 如果迭代器不使用相同的顺序,这将不起作用.我不在乎实际的顺序是什么,我只需要两个 .each_with_index 迭代器使用相同的顺序. 我会假设它是具有固定顺序的数组的属性,而我只是偏执于迭 ..
发布时间:2022-01-10 15:03:48 其他开发

一个迭代器,它改变并返回相同的对象.不好的做法?

我正在编写 GC 友好的代码来读取并返回给用户一系列 byte[] 消息.在内部我重用相同的 ByteBuffer 这意味着我将重复返回相同的 byte[] 实例大部分时间. 我正在考虑编写警示性 javadoc 并将其作为 迭代器.AFAIK 它不会违反 Iterator 合同,但如果他们这样做,用户肯定会感到惊讶 Lists.newArrayList(myIterator) 并返回一个L ..
发布时间:2022-01-10 15:03:39 Java开发

在擦除()之后保持一个有效的向量::迭代器

编辑:我有很多答案告诉我应该将删除分离到另一个循环中.也许我说得不够清楚,但我在最后一段中说过,我想找到除此之外的解决方案.即保持当前的代码结构,但使用一些鲜为人知的 C++fu 使其工作. 好吧,我知道在向量上调用 erase() 会使该元素及其之后的所有迭代器无效,并且 erase() 会返回一个迭代器到下一个有效的迭代器,但是如果擦除发生在其他地方怎么办? 我有以下情况(简体): ..
发布时间:2022-01-10 15:03:24 C/C++开发

如何使用相同的迭代器两次,一次用于计数,一次用于迭代?

计数时似乎消耗了一个迭代器.如何使用相同的迭代器进行计数然后对其进行迭代? 我正在尝试计算文件中的行数,然后打印它们.我能够读取文件内容,我能够计算行数,但是我不再能够像内部光标位于迭代器的末尾一样迭代行. 使用std::fs::File;使用 std::io::prelude::*;fn 主要() {让 log_file_name = "/home/myuser/test.log";让 ..
发布时间:2022-01-10 15:03:04 其他开发

一个名为 i 的变量是不可接受的吗?

就变量命名约定而言,迭代器应该命名为 i 还是像 count 这样更具语义性的名称?如果你不使用 i,为什么不呢?如果你觉得 i 可以接受,是否存在不应该使用的迭代情况? 解决方案 取决于我想的上下文.如果你在某些地方循环一组对象集合,那么从上下文中你在做什么应该是相当明显的. for(int i = 0; i ..
发布时间:2022-01-10 15:02:54 其他开发

如何将向量拆分为n个“几乎相等"部分

我有一个问题,我想使用 ImageMagick 的 convert.exe 合并大量图像,但在 Windows 下我有 8192 字节长的命令行限制. 我对此的解决方案是将任务拆分为较小的子任务,运行它们,然后执行将它们组合在一起的最终任务. 我的想法是编写一个函数,它接受一个图像向量和一个整数,并将向量拆分为 n 个子向量,所有子向量都具有“几乎相等"的部分. 例如,如果我想将 ..
发布时间:2022-01-10 15:02:44 C/C++开发

C++ 迭代器到 const_iterator

如何在 C++ 中从 iterator(该容器类的)获取一个 const_iterator(某个容器类的)?insert_iterator 中的 const_iterator 怎么样?生成的 iterator 应该指向与原始位置相同的位置. 解决方案 容器需要提供 iterator 作为可转换为 const_iterator 的类型,所以可以隐式转换: Container::iterat ..
发布时间:2022-01-10 15:02:34 C/C++开发

转换此迭代器块如何进行功能更改?

给定以下代码片段: 公共类 Foo{公共 IEnumerable序列{得到;放;}公共 IEnumerable酒吧(){foreach(序列中的字符串 s)收益回报 s;}} 下面的代码片段在语义上是等价的,还是不同的?如果不同,它们的功能有何不同? 公共类 Foo2{公共 IEnumerable序列{得到;放;}公共 IEnumerable ..
发布时间:2022-01-10 15:02:09 C#/.NET

并发修改异常 (Java)

线程“main"中的异常 java.util.ConcurrentModificationException壁球电脑弄脏了房间紫罗兰色.房间的状态现在很脏百合动物咆哮百合兽离开房间,从西门走到格林身边.在 java.util.HashMap$HashIterator.nextEntry(HashMap.java:793)在 java.util.HashMap$KeyIterator.next(Ha ..
发布时间:2022-01-10 15:01:54 Java开发

具有派生类的自定义容器的迭代器

我有一个自定义容器,它以两种不同的方式实现,但只有一个接口.像这样的东西. 类向量{虚拟迭代器开始()= 0;虚拟迭代器 end () = 0 ;...//更多功能.} ;类 VectorImplA:公共向量{迭代器 begin() { return m_data.begin() ;}迭代器 end () { return m_data.end() ;}私人的:SomeFloatContain ..
发布时间:2022-01-10 15:01:44 C/C++开发