微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迭代时,C ++列表迭代器永远不会到达end

好的,我编写了一个程序,在使用Visual C ++编译器编译时运行得非常好。 现在我想将它移植到linux上,但是在linux中编译之后会发生一些奇怪的事情。

所以,我正在尝试使用迭代器遍历列表。 这里代码

for (list<IntermediateRepresentation>::iterator irIt = funcIt->second.prologue.begin(); irIt != funcIt->second.prologue.end(); ++irIt) { irIt->address = address; address += getopcodeSize(irIt->opcode); }

现在问题是上面的代码导致无限循环。 我试着在debugging器中看到它为什么这样做,我发现列表的最后一个元素(在'end()'之前)是指向'begin()'迭代器,而不是'end( )'迭代器,所以当我调用'++ irIt'时,它返回到'begin()'。 这是一个预期的行为? 而我发现的另一件事是,当我这样做:

size_t irsize = funcIt->second.prologue.size();

这也会导致无限循环,因为它使用类似于我的循环来计算大小。 那么,不能预期行为是对的吗?

如何使Windows安装程序更新registrystring值(不是多string)中的列表?

命令提示符:文件大小大于1024KB的dir文件

从dynamic数组中find唯一的整数和

用C ++recursion列表文件不会input所有的子目录

Linux查找文件和grep然后按date列出

任何人都可以给我一些提示,问题可能在哪里?

哦,我正在使用Ubuntu 12.10,g ++版本4.7.2,和eclipse IDE以及Linux GCC作为工具链。

谢谢!

在Linux上的Python文件和目录

在窗口大小6中find适合条件的4个值,然后添加到列表直到3不符合条件不包括最后3 – >重复下一个窗口。 python

Linux shell:如何迭代多个文件列表,并在文件中的每一行采取行动?

如何通过将它们与LINUX中的另一个数据文件进行比较来将相同的级别赋予一个ID列表?

问题存储孤立存储中的对象列表

你可能通过拼接创建了一个无效的std :: list 。

例如,使用拼接的第三种变体:

void splice(const_iterator pos,list& other,const_iterator first,const_iterator last);

3)将范围[first,last)的元素从other变成*this 。 这些元素插在pos指向的元素之前。 如果pos是范围[first,last)的迭代器,则行为是不确定的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐