zoukankan      html  css  js  c++  java
  • QMap遍历时Beng的异常特性记录

    //会崩溃的写法
        for(auto var = valueRow.mapValue().begin(); var != valueRow.mapValue().end(); var++)
        {
            if (!var.value().isValid() || var.value().isNull())
                continue;
            this->addItem(var.key(), var.value());
        }
    
    
    //不会崩溃的写法
        QMap<int, QVariant> valueRow_ =  valueRow.mapValue();
        for(auto var = valueRow_.cbegin(); var != valueRow_.cend(); var++)
        {
            if (!var.value().isValid() || var.value().isNull())
                continue;
            this->addItem(var.key(), var.value());
        }
    
    
    //车祸现场
    struct QMapNode : public QMapNodeBase
    {
    ...
    ...   
    
        inline QMapNode *nextNode() { return reinterpret_cast<QMapNode *>(QMapNodeBase::nextNode()); }
    
    ...
    ...
    
    
    
    实质上没有不同,为何会崩溃???
    ::组长郑涛分析:
    var != valueRow.mapValue().end() 每次都会拷贝一份新的。但是var是var = valueRow.mapValue().begin()这里的拷贝。 每次拷贝都不一样造成的Beng。
  • 相关阅读:
    网文阅读笔记
    UUID
    各种网站
    项目
    常用正则表达式
    Struts 2.0 HelloWorld
    接口与抽象类(深入多态)
    #define的优点/volatile的好处
    基本套接口编程
    大小端判断及相互转化
  • 原文地址:https://www.cnblogs.com/azbane/p/12103154.html
Copyright © 2011-2022 走看看