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;用来浮点型数据的比较

  • 相关阅读:
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I作业11
    C语言I作业10
    C语言I作业09
    C语言I作业08
    C语言寒假大作战04
  • 原文地址:https://www.cnblogs.com/qianqiannian/p/9585741.html
Copyright © 2011-2022 走看看