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删除元素相关推荐

  1. Java 集合中遍历删除元素抛异常的原因,从ArrayList说起

    文章目录 使用for删除遗漏元素的原因: 使用foreach删除报错的原因: 其它集合的删除方法 删除集合元素的工具类 ArrayList删除元素的方式. 使用for循环删除.会遗漏删除的元素 使用f ...

  2. Java中List 删除元素方法參考

    Java中List 删除元素 Java中List 删除元素会使集合大小减少,合理删除的一些方法. 1:删除后的元素i-1 删除一个元素后,后边的元素左移1位,此时i-1,保证了下次循环能访问到左移了1 ...

  3. Java中集合删除元素时候关于ConcurrentModificationException的迷惑点

    下面的示例来至于阿里巴巴Java开发手册的集合处理部分的第7条: 运行如下代码,会发现正确运行. public static void hasNotExcption() {List<String ...

  4. Qt中QMap删除元素的简单使用

    QMap基本上qt中的使用和C++中QMap的使用一样,下面先附上一段代码: void chunzhongForm::deleteScrGroupItem(int screenGroup) {QMap ...

  5. js如何往数组Array中添加删除元素

    原文:https://www.tmico.cn/wordpress/?p=222 数组常用方法: 1.pop 删除原数组最后一项,并返回删除元素的值:如果数组为空则返回undefined  2.pus ...

  6. jQuery中添加元素删除元素的方法

    开发工具与关键技术:VS.jQuery 作者:#33 撰写时间:撰写时间:2019年06月06日 jQuery添加元素的方法和移除元素的方法: 引入jQuery插件:  <script src= ...

  7. List中循环删除元素

    在Java中,因为List接口有remove()这个方法,我们只需要调用remove()方法,就可以删除List中的某个元素. 但是在for循环中用remove()就不太行了 根据面向百度开发的经验, ...

  8. 向顺序容器vector、string、deque、list、forward_list中插入\删除元素时迭代器、引用、指针的变化

    1.插入元素 (1)对于vector.string来说,当在某个位置插入元素后,如果内存空间重新分配,则指向任何位置的迭代器.指针.引用都会失效: 如果内存空间没有重新分配,则在插入位置之前的迭代器. ...

  9. python中如何删除字典中的元素_python中字典删除元素

    方法一 pop(key[,default]) d = {'a':1,'b':2,'c':3} # 删除key值为'a'的元素,并赋值给变量e1 e1 = d.pop('a') print(e1) # ...

最新文章

  1. boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转
  2. java json开发包 fastjson 简介
  3. SQL语句将某字段查询出以逗号隔开
  4. linux arcgis10.4安装教程,ArcGIS 10.1 for Server安装教程系列—— Linux下的单机安装
  5. Listener(监听器)
  6. mysql主从配置错误_mysql主从配置常见错误处理
  7. Linux下的系统排错以及无图形修改root密码
  8. hdu 2883 kebab 网络流
  9. boot定时任务开启和关闭 spring_Spring-Boot 下定时任务通过配置文件控制开关和执行时间...
  10. keras demo - fashion_mnist
  11. 网页制作html新手代码,网页制作HTML基础标签代码大全
  12. 描写火车站场景_描写火车站人多的场景_描写火车站人多的作文
  13. python3网络爬虫(堆糖网)
  14. android组件搭配
  15. vue实现公告上下滚动
  16. ExecutorService的shutdownNow方法注意事项
  17. 备考H12-221 HCIP-Routing Switching-IERS的一些笔记
  18. 两组回归系数差异检验_如何检验两个回归系数的差异性?我做调节分析。
  19. 2022-2028全球军用级电脑行业调研及趋势分析报告
  20. java –cp ./:_7位专家– 7条意见:Java 13的亮点是什么?

热门文章

  1. 2022年湖南省中医执业医师考试第二单元医学伦理学(一)
  2. 萌新SQL基础学习1
  3. 验证码是自动化的天敌?看看是怎么解决的
  4. vue项目H5页面在苹果手机点击输入框输入内容时 页面自动放大
  5. Java、JSP环境保护与宣传网站的设计与实现
  6. ChatGPT让亚马逊梦碎!微软CEO狂贬语音助手
  7. 多线程并行和并发区别的简单理解
  8. [勇者闯LeetCode] 125. Valid Palindrome
  9. Quant工具箱:量化开发之事件驱动回测框架与实盘交易系统
  10. three.js-打造VR看房 快速掌握3D开发