zoukankan      html  css  js  c++  java
  • Notes_STL_List_And_Map

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

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

    //Author: channy

    Notes_STL_List_And_Map

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

    问题:程序依旧会崩溃

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

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

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

    代码:

    #include <QCoreApplication>
    #include <QDebug>
    int main(int argc, char *argv[])
    {
        //QCoreApplication a(argc, argv);
    
        QList<int> ql;
        qDebug() << ql.size();
    
        QMap<int, QList<int>> qm;
        qm[0] = ql;
    
        for (QMap<int, QList<int>>::iterator iter = qm.begin(); iter != 大专栏  Notes_STL_List_And_Map"n">qm.end(); iter++) {
    
            qDebug() << qm.size();
    
            for (QList<int>::iterator itr = iter->begin(); itr != iter->end(); itr++) {
                itr = iter->erase(itr);
            }
    
            if (iter->size() == 0) {
                iter = qm.erase(iter);
                //如果不加下面的判断,会崩溃。。。iter != qm.end() == true. But why???
    			if (qm.size() == 0) break;
            }
        }
    
        //return a.exec();
        return 0;
    }
    

    back

  • 相关阅读:
    必备单词
    Vim
    Linux基础
    python链表操作详解
    冒泡和快速排序
    学员练车选课系统
    面试题
    获取resp:heads:content-disposition的filename
    记录springBoot启动报错(无脑型)
    springBoot+Vue搭建新项目(1)
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12376142.html
Copyright © 2011-2022 走看看