List的遍历——list iterator not incrementable

 1 for ( std::list<Type>::iterator it =ObjList.begin(); it != ObjList.end(); )
 2 {
 3        if((*it->regin == CheckRegin )
 4        {
 5               it= ObjList.earse(it);
 6               continue;
 7        }
 8
 9        else
10       {
11               ++it;
12       }
13 }

List在erase后原来的遍历器就失效了,不能再往下执行,需要continue跳出本次循环。earse操作会返回一个指向container下一个元素的iterator,如果想继续遍历,就得用返回的iterator继续操作。

时间: 2024-08-13 21:14:29

List的遍历——list iterator not incrementable的相关文章

数据持久化、单例、重载【添加对不可访问的成员的操作】、魔术方法、类常量、static关键字对self的补充【静态延迟绑定实现$this的效果】、参数类型约束【参数前加类名】、遍历【iterator接口】、快速排序

1.数据持久化过程[传输(例如表单提交或php交互mysql)和保存过程] 使用的是字符串形式的流数据. 数据流就是为了传输[按照序列的形式进行传输] [http://baike.baidu.com/link?url=0MtUQMhFzc_EwJc09rXZV8KlfOL4jis6XNbRfmGA3rQhDcGwOp8togLVQjXBV34M] 所以将其他类型数据转化为字符串的过程也是序列化的过程 [这个概念和图片.视频的流媒体的区别?] [注意点] 另外mysql中sql语句中的某些关键词为

C++迭代器/遍历器 iterator实现

1.原理 迭代器又称为遍历器,用于访问容器中的数据,迭代器旨在算法和容器之间搭建访问的桥梁,从而使算法和数据分离,不用关心数据具体的存储细节.具体的原理描述请参考以下两个博客: [1].C++迭代器 iterator [2].Iterator模式C++实现 迭代器的UML图: (来自:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/25/1764934.html) 2.实现 根据以上的原理图,下面实现一个简单的迭代器. /* * 以下实现了

java容器中遍历循环Iterator 和 Foreach 循环

最近遇到这样一个问题,要删除一个集合中的某个元素,该怎么解决? 我自己写了两段代码来删除,都报了一个错java.util.ConcurrentModificationException:为了让更多可能没注意到这个点的程序猿注意一下,我在这里分享下~ 先看代码 1 package com.zwt1234; 2 3 import java.util.HashSet; 4 import java.util.Iterator; 5 import java.util.Set; 6 7 public cla

velocity 遍历EventHandler Iterator

EventHandlerUtil 类的 iterateOverEventHandlers方法 for (Iterator i = handlerIterator; i.hasNext();){ EventHandler eventHandler = (EventHandler) i.next(); if (!eventExecutor.isDone()) { eventExecutor.execute(eventHandler); }}

Struts迭代器(iterator)遍历List常用的4种例子 - 冯世杰

[摘要]本文主要介绍及演示了Struts迭代器(iterator)遍历List常用的4种例子,基于MyEclipse开发环境,重点关注前后端代码的实现,给出后端java代码.前段struts标签代码,主要有如下4个例子: 1. 遍历List<String> 2. 遍历List<List<String>> 3. 遍历UserEntity 4. 遍历List<UserEntity> 例子的详细代码请参考附件1,给出两个4个例子的运行截图(如下图1):      

源码剖析Iterator接口遍历和直接for-get组合遍历的区别

经常使用ArrayList遍历,尝试总结一下for配合get()的遍历和Iterator配合next()遍历的区别,进入Java的JDK源码中进行深度剖析一下 这里参考一下http://bbs.csdn.net/topics/250025827论坛的测试程序: import java.util.Iterator; import java.util.List; import java.util.ArrayList; import java.util.LinkedList; /** * Iterat

Java源码分析:深入探讨Iterator模式

作者:兄弟连 java.util包中包含了一系列重要的集合类.本文将从分析源码入手,深入研究一个集合类的内部结构,以及遍历集合的迭代模式的源码实现内幕. 下面我们先简单讨论一个根接口Collection,然后分析一个抽象类AbstractList和它的对应Iterator接口,并仔细研究迭代子模式的实现原理. 本文讨论的源代码版本是JDK 1.4.2,因为JDK 1.5在java.util中使用了很多泛型代码,为了简化问题,所以我们还是讨论1.4版本的代码. 集合类的根接口Collection

iterator的使用

package ListPackage;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Map; public class Demo4 {//**************使用迭代器遍历map和list**************    public static void main(String[] args)

Java基础知识强化之集合框架笔记07:Collection集合的遍历之迭代器遍历

1. Collection的迭代器: 1 Iterator iterator():迭代器,集合的专用遍历方式 2. 代码示例: package cn.itcast_03; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /* * Iterator iterator():迭代器,集合的专用遍历方式 * Iterator(迭代器): * Object next():获取元素,并移动