QT QHash的一点信息异常?BUG?

BUG复现代码

PS:Command 是一个结构体,里面有名为cs的属性;

    //test
    QHash<int, Command>testHash;
    Command cmd;
    testHash.insert(1, cmd);
    while (true)
    {
        qDebug() <<testHash.size()<<  testHash[1].cs << testHash.size();//①
        //qDebug() << testHash.value(1).cs << testHash.size();//②
        if (testHash.contains(1))//③
        {
            qDebug() << "testHash.contains(1)=true;";
            testHash.remove(1);
            continue;
        }
        else
        {
             break;
        }
    }

上述代码,①打印时testHash.size() 的值为0;但是③会一直成立;

问题出在testHash[1]。但为什么会出来testHash.size() 的值为0,但testHash.contains(1)却成立,待研究。

续:有网友执行相同的代码,①处有的人打印是0,testHash[1].cs,1;有的打印是1,testHash[1].cs,1;而我是0,testHash[1].cs,0;鉴于些,有人提出,不同的结果应该有所用的QT库、C++版本有关。

PS:后来我同时打开打印①②,在②出,size()的值是1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值