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

QT:QHash的使用的更多相关文章

  1. QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数

    前几天要用QSet作为储存一个自定义的结构体(就像下面这个程序一样),结果死活不成功... 后来还跑到论坛上问人了,丢脸丢大了... 事先说明:以下这个例子是错误的 #include <QtCo ...

  2. C++STL之unordered_map与QT的QHash对比

    刚刚心血来潮,试一试QT和STL哪个好 网上评论都支持STL,我试了试:  贴上代码: #include <QCoreApplication> #include <QHash> ...

  3. QSet使用及Qt自定义类型使用QHash等算法

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSet使用及Qt自定义类型使用QHash等算法     本文地址:http://techie ...

  4. Qt自定义类型使用QHash等算法(Qt已经自定义了34种类型,包括int, QString, QDate等基本数据类型)

    自定义类型 #include <QCoreApplication> #include <QSet> #include <QDebug> class testCust ...

  5. Qt ------- QMap和QHash的区别

    基本概念: QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个值,并且按照Key的次序存储数据.同时这个类也支持一键多值的情况,用类QMultiMap可以实 ...

  6. 第37课 深度解析QMap与QHash

    1. QMap深度解析 (1)QMap是一个以升序键顺序存储键值对的数据结构 ①QMap原型为 class QMap<K, T>模板 ②QMap中的键值对根据Key进行了排序 ③QMap中 ...

  7. Qt开发中的实用笔记三--关于各种类的零碎知识点:

    1,QUuid()创建唯一标识码,在创建数据库实体ID和链接数据库QSqlDatabase时非常方便 2,QScrollArea与QScrollBar,如果是要在widget中添加窗口滑动QScrol ...

  8. QT实现HTTP JSON高效多线程处理服务器

    QT实现HTTP JSON高效多线程处理服务器 Legahero QQ:1395449850 现在一个平台级的系统光靠web打天下是不太现实的了,至少包含APP和web两部分,在早期APP直接访问we ...

  9. Qt MVC(模型-视图-代理)

    实习刚才是一段时间,公司这边就要求熟悉这个mvc.一般开始都是用tableview,前面的blog我都是使用listview居多,并且相对delegate这个使用的多余model.接下来说下model ...

随机推荐

  1. java中的函数

    1.函数:定义在类中的具有特定功能的一段独立小程序.函数也称之为方法. 为了提高代码的复用性,对代码进行抽取. 将这个部分定义成一个独立的功能.方便使用. java中对功能的定义通过函数来实现的.2函 ...

  2. Genymotion-Android模拟器提示"Unable to connect to the Genymotion server. Please check your Internet connection."解决方法

    昨天刚装的Genymotion,昨晚还用得好好的. 今晚开机,重新打开Genymotion,却提示:"Unable to connect to the Genymotion server. ...

  3. element-ui表单form和rules踩坑

    问题: 代码: <el-form ref="form" :rules="rules" :model="form" label-widt ...

  4. toggle,hasClass

    toggle 但当toggle(),不带参数时,与show()和hide()的作用一样,切换元素的可见状态,如果元素是可见的,则切换为隐藏状态;如果元素是隐藏的则切换为可见状态,此时括号内可添加()毫 ...

  5. 小容量的byteBuffer 读取大文本

    利用死循环和判断是否 读到0个字节,便能判断是否读取完成,但它存在如下问题,如果输入是中文的话,可能没有读取完中文的全部3个字节,导致乱码.如果数据足够随机,这样的情况肯定会出现的 @Test pub ...

  6. java微信公众号支付示例

    开始之前,先准备好:appid.商家号.商户密匙. 工具类: MD5Util.java package com.yiexpress.core.utils.wechat; import java.sec ...

  7. redis的数据持久化策略

    redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照,它可以将存在于某一时刻的所有数据都写入硬盘里面.另一种方法叫只追加文件(AOF),它会在执行写命令时,将被执行的写命令复制到 ...

  8. iperf详细使用方法

    Iperf  是一个网络性能测试工具.Iperf可以测试TCP和UDP带宽质量.Iperf可以测量最大TCP带宽, 具有多种参数和UDP特性.Iperf可以报告带宽,延迟抖动和数据包丢失. Iperf ...

  9. sqlite3出现SQLITE_BUSY错误码的原因以及解决方法

    转载:https://www.cnblogs.com/lijingcheng/p/4454884.html 转载:https://blog.csdn.net/venchia_lu/article/de ...

  10. 阿里云ECS相关

    RAM授权: https://help.aliyun.com/document_detail/28639.html 安全组: https://jingyan.baidu.com/article/afd ...