-
0 votesanswersviews
使用我的自定义迭代器和stl算法
我正在尝试创建自己的迭代器,并且我已经使用std :: generate算法按预期工作了 . 但是,当我尝试std :: find的std :: max_element时,我得到了一些神秘的错误 . 这是我的迭代器的接口: template <typename GridT, typename GridPtr, typename GridRef, ... -
0 votesanswersviews
java.util.ConcurrentModificationException&iteration?
我是Arraylists和迭代器的新手,这是我第一次遇到这个例外 . 我有一个ArrayList你和我想做以下算法: for (Character c:u){ if(k==1){ //base case if(isAnswer(s+u.get(0))) System.out.println(s+u.get(0)+"... -
30 votesanswersviews
检查值存在于std :: map - C中
我知道find方法在std :: map中找到提供的键,并将迭代器返回给元素 . 反正有没有找到值并获得元素的迭代器?我需要做的是检查std :: map中是否存在指定的值 . 我通过循环 Map 中的所有项目并进行比较来完成此操作 . 但我想知道有没有更好的方法 . 这是我写的 bool ContainsValue(Type_ value) { bool found = false; ... -
1 votesanswersviews
如何更改此标记化过程以处理具有多行的文本文件?
我正在使用这个源代码: #include <string> #include <vector> #include <iostream> #include <istream> #include <ostream> #include <iterator> #include <sstream> #include <... -
1 votesanswersviews
在分析boost :: graph时,是否会对顶点和边描述符或它们的迭代器进行操作?
使用BOOST图库时,我有一个完全初始化的图形实例 - 结构现在是静态的 . 我需要根据图表进行一些处理 . 我不清楚我是否应该使用顶点和边的迭代器类型,或顶点和边类型本身? typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, VertexProperty, EdgeProperty &... -
2 votesanswersviews
在Boost Graph Library中,为什么添加边缘会使Edge迭代器失效(以及其他问题)?
关于BGL documentation中图表"Summary of Descriptor and Iterator Invalidation"的几个问题: 为什么添加边会使边和邻接迭代器无效;为什么isn 't every column of the add_edge() row 910063 ? Wouldn' t只是追加进/出边缘列表? 如果图形是定向的,为什么删... -
49 votesanswersviews
使用C vector :: insert()添加到向量的末尾
我必须根据向量元素中的值将值插入某个地方的C STL向量中 . 我正在使用 insert() 函数来完成此任务 . 我意识到,当我想在向量的末尾添加一个新元素时,我可以简单地使用 push_back() . 但为了保持我的代码看起来不错,我想专门使用 insert() ,它将指向所需插入点之后的元素的迭代器和要插入的值作为输入 . 如果作为参数传入的迭代器的值是 v.end() ,其中 v 是我... -
-3 votesanswersviews
TypeError:__str__返回非字符串
class Course(object): def __init__(self,cnum,name): self.name = name self.cnum = cnum def __str__(self): return 'Course:' , self.cnum , self.name class AssigendCourse... -
1 votesanswersviews
为什么List包装在IntoIter中?
在Learning Rust With Entirely Too Many Linked Lists的书中 IntoIter 的implementation中,为什么 List 包含在元组结构中?相反,可以为 List 实施 Iterator . -
-1 votesanswersviews
如何从C中的map迭代器调用类成员函数?
我无法使用map的迭代器调用show函数 . 有没有办法使用迭代器来做到这一点? #include <iostream> #include <string> #include <map> using namespace std; class A { int i; public: A(int pi):i(pi) { cout&l... -
1 votesanswersviews
vector.erase(begin(vector))将删除vector的LAST元素
下列 void PlayListModel::removeTrack(int track) //does not work { qDebug()<<track; assert(track >= 0); if (not mTracks.empty() and static_cast<int>(track) < mTracks.size())... -
0 votesanswersviews
如何使用end()迭代器扩展范围
(不确定这是正确的任务)我正在编写一个与经典排序相关的stl风格的算法 . 原型是: template<typename RAIter> void Algo(RAIter first, RAIter last) { .... size_t size = std::distance(first, last); RAIter midIter =first; ... -
1 votesanswersviews
使用erase删除remove_if
这件事让我发疯,我无法理解: // v contains : 101, 1, 2, 3, 4 , 5 v.erase(remove_if(v.begin(), v.end(), bind2nd(less<int>(), 3)), v.end()); // v contains now : 101, 3, 4, 5 为什么在擦除中有v.end()作为第二个参数?我读到remove_if... -
0 votesanswersviews
在循环时安全地允许删除向量迭代器值
我有一个类型的向量,它有两个函数,setSucceeed()和setFailed() . 调用setFailed导致一些工作正在完成,然后该对象被破坏 . 我需要迭代这个向量,并根据外部条件为每个元素调用其中一个函数 . 这是我在此代码中的初始传递: void F(bool success) { for (vector<t>::iterator i = myVector.beg... -
0 votesanswersviews
我的矢量迭代器出现了一个奇怪的错误
我有一个向量的迭代器,我想删除向量中的某些元素 . 运行代码时,编译中没有出现错误,但在执行后我收到一条消息“调试断言失败!” . 有人能告诉我迭代器有什么问题吗? int function(unsigned int n, unsigned int m) { vector<int> vec1; vec1.push_back(3); vec1.push_back(4);... -
4 votesanswersviews
条件中的迭代器赋值 - 矢量迭代器不兼容
我有 std::vector 的包装器,我已经实现了用另一个向量替换向量中的一个部分的函数 . I've tried to put the assignment of an iterator directly in the if condition and got unexpected results . 我正在使用Visual Studio 2013并且 FAIL 已定义我得到 Debug... -
4 votesanswersviews
使用迭代器 - C找到矢量的中间元素
我有两个问题 . First question 我在 C++ 从 C++ primer 5th edition 书中读到 iterators . 在本书的一个代码示例中,给出了以下代码片段将在向量中找到中间元素 vi auto mid = vi.begin() + vi.size() / 2; 现在我想问一下,为什么在 vi.size() 中添加 vi.begin() ? vi.size()... -
0 votesanswersviews
基于范围的for循环向量迭代器不可递增
在我的应用程序中,我将所有当前打开的窗口存储在一个向量中,以便进行事件处理 . 打开窗口时,它会添加到矢量中并在关闭时删除 . 我有一个进程事件函数,我遍历该向量并使用当前事件更新所有窗口: for(Window* w : windows) w->OnWindowEvent(event); 但是,如果我关闭窗口,我会收到错误'Debug Assertion failed:v... -
4 votesanswersviews
Scala:在修改序列时迭代序列?
我正在尝试在Scala中实现Sieve of Eratosthenes . 我首先初始化所有奇数加2的序列: // (end goal is to find all prime factors of bigNumber) val largestPrime : Long = Math.ceil(Math.sqrt(bigNumber)).toLong var nums : Seq[Long] = (... -
39 votesanswersviews
如何删除const_iterator的constness?
作为这个问题的延伸Are const_iterators faster?,我在 const_iterators 上有另一个问题 . 如何删除 const_iterator 的常量?虽然迭代器是指针的通用形式,但仍然是两个不同的东西 . 因此,我相信,我也不能使用 const_cast<> 从 const_iterator 转换为 iterator . 一种方法可能是您定义一个迭代器,... -
0 votesanswersviews
如何为向量实现std :: erase?
我有一个自定义Vec类,复制std :: vector的功能,但是我无法实现一个擦除函数,它接受与标准库实现相同的参数(并优雅地处理它们) . 具体来说,在C 11中,vector::erase具有签名 iterator erase (const_iterator position); ,其中返回的迭代器指向元素删除后元素的新位置 . 我唯一的解决方案是传递一个非const迭代器,将给定迭代器之后... -
7 votesanswersviews
是否可以在Rust中实现自定义Iterator :: sum?
我是Rust的新手,我正在努力学习迭代器 . 我正在处理的具体问题是产生三角形数字的迭代器(三角形数字为1,3,6,10,15,其中1 = 1,3 = 1,2,6 = 1 2 3等) . 我有这个创建的基础知识,如下所示: pub struct Triangle { cur: u32, n: u32, m: u32, } impl Iterator for Triangl... -
189 votesanswersviews
为什么标准迭代器范围[开始,结束]而不是[开始,结束]?
为什么标准将 end() 定义为结尾的一个,而不是实际结束? -
17 votesanswersviews
C 11:非成员rbegin()/ rend()函数
由于在C 11修订版中为标准包含添加了非成员 begin() 和 end() 函数,为什么还没有添加 rbegin() 和 rend() 函数的非成员版本?在开始使用 begin() 和 end() 的非成员版本后,我觉得很傻,但却发现我现在必须在使用成员函数和非成员函数调用之间切换 . (我意识到滚动我自己的 rbegin() 和 rend() 的非成员版本是微不足道的,但我添加了标准的'm ... -
55 votesanswersviews
自定义容器是否具有免费的开始/结束功能?
当创建按照通常规则播放的自定义容器类(即使用STL算法,使用行为良好的通用代码等)时,在C 03中实现迭代器支持和成员开始/结束函数就足够了 . C 11引入了两个新概念 - 基于范围的for循环和std :: begin / end . 基于范围的for循环理解成员开始/结束功能,因此任何C 03容器都支持基于范围的开箱即用 . 对于算法,推荐的方法(根据Herb Sutter的'Writing... -
531 votesanswersviews
在Java中调用foreach循环中的remove [duplicate]
这个问题在这里已有答案: Iterating through a Collection, avoiding ConcurrentModificationException when modifying (removing) in loop 22个答案 在Java中,使用foreach循环遍历集合时,对集合调用remove是否合法?例如: List<String> names = .... -
600 votesanswersviews
如何并行迭代两个列表?
我在Python中有两个迭代,我想成对地遍历它们: foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print "f: ", f, "; b: ", b 它应该导致: f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 一种方法是迭代索引... -
6 votesanswersviews
为什么不能在迭代器上下文中使用unsafe关键字?
在看这个问题时,Jon在关闭之前做了很好的工作......'How to read a text file reversly with iterator '. And there was a similar question in which I answered using pointers hocus pocus..' .net is there a way to read a text fi... -
456 votesanswersviews
迭代器失效规则
C容器的迭代器失效规则是什么? 优选地以摘要列表格式 . (注意:这是Stack Overflow的C FAQ的一个条目 . 如果你想批评在这个表单中提供常见问题解答的想法,那么发布所有这些的meta上的帖子就是这样做的地方 . 这个问题在C聊天室中受到监控,其中FAQ的想法首先出现在那里,所以你的答案很可能被那些提出这个想法的人阅读 . ) -
13 votesanswersviews
使用Iterator collect键入问题
我正在尝试使用以下代码片段将 &str 对的向量转换为 HashMap : use std::collections::HashMap; fn main() { let pairs = vec!(("foo", "bar"), ("toto", "tata")); let map: HashMap&l...