//Description: 使用STL遇到的问题

//Create Date: 2019-07-08 09:19:15

//Author: channy

Notes_STL_List_And_Map

已知:erase后迭代器会失效,已经重置了迭代器

问题:程序依旧会崩溃

原因:此代码中原因还未知。工作代码中出现过erase的是局部变量,实际上map还是没有erase

跟进:过了几天再试又好了。。。

(没有经历过把bug解释为神学的程序员不是好程序员)

代码:

  1. #include <QCoreApplication>
  2. #include <QDebug>
  3. int main(int argc, char *argv[])
  4. {
  5. //QCoreApplication a(argc, argv);
  6. QList<int> ql;
  7. qDebug() << ql.size();
  8. QMap<int, QList<int>> qm;
  9. qm[0] = ql;
  10. for (QMap<int, QList<int>>::iterator iter = qm.begin(); iter != 大专栏  Notes_STL_List_And_Map"n">qm.end(); iter++) {
  11. qDebug() << qm.size();
  12. for (QList<int>::iterator itr = iter->begin(); itr != iter->end(); itr++) {
  13. itr = iter->erase(itr);
  14. }
  15. if (iter->size() == 0) {
  16. iter = qm.erase(iter);
  17. //如果不加下面的判断,会崩溃。。。iter != qm.end() == true. But why???
  18. if (qm.size() == 0) break;
  19. }
  20. }
  21. //return a.exec();
  22. return 0;
  23. }

back

Notes_STL_List_And_Map的更多相关文章

随机推荐

  1. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring自动装配Bean

    除了使用 XML 和 Annotation 的方式装配 Bean 以外,还有一种常用的装配方式——自动装配.自动装配就是指 Spring 容器可以自动装配(autowire)相互协作的 Bean 之间 ...

  2. 阿里P7Java最全面试296题:阿里天猫、蚂蚁金服含答案文档解析

    [阿里天猫.蚂蚁.钉钉面试专题题目加答案] 不会做别着急:文末有答案以及视频讲解,架构师资料 1. junit用法,before,beforeClass,after, afterClass的执行顺序 ...

  3. 一天一个设计模式——Bridge桥接模式

    一.概念准备 在理解桥接模式之前,先要理解面向对象程序设计中的两个概念: 类的功能层次结构:假设现在有一个类Something,这个类有一些成员属性和成员方法,但是现有的功能不能满足要求,因此我们想扩 ...

  4. [GXYCTF2019]禁止套娃

    0x00 知识点 无参数RCE eval($_GET['exp']); 参考链接: https://skysec.top/2019/03/29/PHP-Parametric-Function-RCE/ ...

  5. linux centos 7 防火墙相关

    centos 7 系统 默认是开启防火墙,而且没有打开80和8080等端口. 因此,今天配置tomcat和nginx后,分别无法正常访问 访问80和8080端口都报:502错误.(错误的网关)查询资料 ...

  6. mysql自关联和多表连接查询

    自关联操作         多表连接查询  inner  join 内查询   left  join  左查询   right  join  右查询                          ...

  7. 最大连续子序列和,以及开始、结束下标(HDU 1003)

    HDU1003 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the ...

  8. cmd定时自动弹窗命令

    at 17:00 /e:m,t,w,th,f,s,su msg * 弹窗文字

  9. SQL注入——报错注入

    0x00 背景 SQL注入长期位于OWASP TOP10 榜首,对Web 安全有着很大的影响,黑客们往往在注入过程中根据错误回显进行判断,但是现在非常多的Web程序没有正常的错误回显,这样就需要我们利 ...

  10. Java 语句while、do while、for循环、嵌套、for与while的区别、break continue(3)

    for循环语句,双从for嵌套: /* for(初始化表达式:循环条件表达式:循环后的操作表达式) { 执行语句: } */ /*1,变量有自己的作用域.对于for来讲:如果将用于控制循环的增量定义在 ...