zoukankan      html  css  js  c++  java
  • QT:QHash的使用

    QHash<QPointF, QVector<float>> data;

    此时会报错说没有声明QPointF的Key类型

    需要我们手动实现一个函数

    static uint qHash(const QPointF& key, uint seed) {
        int val = static_cast<int>(key.x());
        return qHash<int>(val, seed);
    }

    数据的插入,插入QHash<QPointF, QVector<float>>类型的数据

      data.insert(QPointF(0.0, 1.0),   {0.0, 0.3, 0.7, 1.0});
      data.insert(QPointF(1.0, 2.0),   {0.0, 0.7, 1.3, 2.0});
      data.insert(QPointF(2.0, 4.0),   {0.0, 1.3, 2.7, 4.0});
      data.insert(QPointF(4.0, 6.0),   {0.0, 2.0, 4.0, 6.0});

    数据的查找 输入一个浮点型数,判断这个浮点型数在不在Key的区间,如果在,就返回Value

    QVector<float> ClassName::getDataValue(qreal maxValue, QHash<QPointF, QVector<float>> &data) {
        for (QHash<QPointF, QVector<float>>::iterator it = data.begin(); it != data.end(); ++it) {
            if ((it.key().x() < maxValue) && (maxValue < it.key().y() + FLOAT_ACCURACY)) {
                return it.value();
            }
        }
        return QVector<float>();
    }

    FLOAT_ACCURACY:0.00001;用来浮点型数据的比较

  • 相关阅读:
    css文档流
    gitolite搭建
    Packets out of order. Expected 1 received 27...
    前端常见跨域解决方案
    跨时代的分布式数据库 – 阿里云DRDS详解
    Redis持久化机制
    redis实现消息队列
    队列
    ide-helper
    Bitmap 位操作相关
  • 原文地址:https://www.cnblogs.com/qianqiannian/p/9585741.html
Copyright © 2011-2022 走看看