STL 中list删除元素
list容器中删除元素分如下两种情形,第一种是很大条地使用remove函数输入list的头部iterator和尾部iterator,如下代码
list<int> ilist;
ilist.push_back(1);
ilist.push_back(2);
remove(ilist.begin(),ilist.end(),1);//删除整个list中值为1的字节点
上面这个程序不需要用户参与,属于比较高层次的编程。第二种删除的情况是用户通过迭代器遍历容器的元素,然后通过迭代器删除容器中元素,举例如下:
list<int>::iterator iter=ilist.begin();
while(iter!=ilist.end())
{if(*iter==1){ilist.erase(iter);}iter++;
}
这个之后就会出现问题了,因为erase函数已经使得当前的节点失效了,所以当前节点的迭代器也会失效,因此再对这个迭代器操作(iter++)就会产生错误了,可以通过一下方式来解决这个问题:
list<int>::iterator iter=ilist.begin();
list<int>::iterator iter_tmp;
while(iter!=ilist.end())
{if(iter==1){iter_tmp=iter;iter++;ilist.erase(tmp);}else{iter++;}
}
STL 中list删除元素相关推荐
- Java 集合中遍历删除元素抛异常的原因,从ArrayList说起
文章目录 使用for删除遗漏元素的原因: 使用foreach删除报错的原因: 其它集合的删除方法 删除集合元素的工具类 ArrayList删除元素的方式. 使用for循环删除.会遗漏删除的元素 使用f ...
- Java中List 删除元素方法參考
Java中List 删除元素 Java中List 删除元素会使集合大小减少,合理删除的一些方法. 1:删除后的元素i-1 删除一个元素后,后边的元素左移1位,此时i-1,保证了下次循环能访问到左移了1 ...
- Java中集合删除元素时候关于ConcurrentModificationException的迷惑点
下面的示例来至于阿里巴巴Java开发手册的集合处理部分的第7条: 运行如下代码,会发现正确运行. public static void hasNotExcption() {List<String ...
- Qt中QMap删除元素的简单使用
QMap基本上qt中的使用和C++中QMap的使用一样,下面先附上一段代码: void chunzhongForm::deleteScrGroupItem(int screenGroup) {QMap ...
- js如何往数组Array中添加删除元素
原文:https://www.tmico.cn/wordpress/?p=222 数组常用方法: 1.pop 删除原数组最后一项,并返回删除元素的值:如果数组为空则返回undefined 2.pus ...
- jQuery中添加元素删除元素的方法
开发工具与关键技术:VS.jQuery 作者:#33 撰写时间:撰写时间:2019年06月06日 jQuery添加元素的方法和移除元素的方法: 引入jQuery插件: <script src= ...
- List中循环删除元素
在Java中,因为List接口有remove()这个方法,我们只需要调用remove()方法,就可以删除List中的某个元素. 但是在for循环中用remove()就不太行了 根据面向百度开发的经验, ...
- 向顺序容器vector、string、deque、list、forward_list中插入\删除元素时迭代器、引用、指针的变化
1.插入元素 (1)对于vector.string来说,当在某个位置插入元素后,如果内存空间重新分配,则指向任何位置的迭代器.指针.引用都会失效: 如果内存空间没有重新分配,则在插入位置之前的迭代器. ...
- python中如何删除字典中的元素_python中字典删除元素
方法一 pop(key[,default]) d = {'a':1,'b':2,'c':3} # 删除key值为'a'的元素,并赋值给变量e1 e1 = d.pop('a') print(e1) # ...
最新文章
- boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转
- java json开发包 fastjson 简介
- SQL语句将某字段查询出以逗号隔开
- linux arcgis10.4安装教程,ArcGIS 10.1 for Server安装教程系列—— Linux下的单机安装
- Listener(监听器)
- mysql主从配置错误_mysql主从配置常见错误处理
- Linux下的系统排错以及无图形修改root密码
- hdu 2883 kebab 网络流
- boot定时任务开启和关闭 spring_Spring-Boot 下定时任务通过配置文件控制开关和执行时间...
- keras demo - fashion_mnist
- 网页制作html新手代码,网页制作HTML基础标签代码大全
- 描写火车站场景_描写火车站人多的场景_描写火车站人多的作文
- python3网络爬虫(堆糖网)
- android组件搭配
- vue实现公告上下滚动
- ExecutorService的shutdownNow方法注意事项
- 备考H12-221	HCIP-Routing Switching-IERS的一些笔记
- 两组回归系数差异检验_如何检验两个回归系数的差异性?我做调节分析。
- 2022-2028全球军用级电脑行业调研及趋势分析报告
- java –cp ./:_7位专家– 7条意见:Java 13的亮点是什么?