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;用来浮点型数据的比较
QT:QHash的使用的更多相关文章
- QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数
前几天要用QSet作为储存一个自定义的结构体(就像下面这个程序一样),结果死活不成功... 后来还跑到论坛上问人了,丢脸丢大了... 事先说明:以下这个例子是错误的 #include <QtCo ...
- C++STL之unordered_map与QT的QHash对比
刚刚心血来潮,试一试QT和STL哪个好 网上评论都支持STL,我试了试: 贴上代码: #include <QCoreApplication> #include <QHash> ...
- QSet使用及Qt自定义类型使用QHash等算法
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSet使用及Qt自定义类型使用QHash等算法 本文地址:http://techie ...
- Qt自定义类型使用QHash等算法(Qt已经自定义了34种类型,包括int, QString, QDate等基本数据类型)
自定义类型 #include <QCoreApplication> #include <QSet> #include <QDebug> class testCust ...
- Qt ------- QMap和QHash的区别
基本概念: QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个值,并且按照Key的次序存储数据.同时这个类也支持一键多值的情况,用类QMultiMap可以实 ...
- 第37课 深度解析QMap与QHash
1. QMap深度解析 (1)QMap是一个以升序键顺序存储键值对的数据结构 ①QMap原型为 class QMap<K, T>模板 ②QMap中的键值对根据Key进行了排序 ③QMap中 ...
- Qt开发中的实用笔记三--关于各种类的零碎知识点:
1,QUuid()创建唯一标识码,在创建数据库实体ID和链接数据库QSqlDatabase时非常方便 2,QScrollArea与QScrollBar,如果是要在widget中添加窗口滑动QScrol ...
- QT实现HTTP JSON高效多线程处理服务器
QT实现HTTP JSON高效多线程处理服务器 Legahero QQ:1395449850 现在一个平台级的系统光靠web打天下是不太现实的了,至少包含APP和web两部分,在早期APP直接访问we ...
- Qt MVC(模型-视图-代理)
实习刚才是一段时间,公司这边就要求熟悉这个mvc.一般开始都是用tableview,前面的blog我都是使用listview居多,并且相对delegate这个使用的多余model.接下来说下model ...
随机推荐
- python zip()函数
描述 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符 ...
- 前端使用node.js的http-server开启一个本地服务器
前端使用node.js的http-server开启一个本地服务器 在写前端页面中,经常会在浏览器运行HTML页面,从本地文件夹中直接打开的一般都是file协议,当代码中存在http或https的链接时 ...
- activemq修改端口
1.修改TCP 61616端口 cd /apps/svr/activemq/conf cat activemq.xml |grep transportConnector <transportCo ...
- flutter -webview 报错 err_cleartext_not_permitted
文件 android\app\src\main\AndroidManifest.xml <manifest xmlns:android="http://schemas.android. ...
- python模块的使用
这位老师的文章说的很清楚:模块 这里我只说一下,我在使用过程中的一些注意事项. 比如,我创建了一个包,该包下面有两个模块:model1和model2,如下图 那么我们再python中怎样去使用自己创建 ...
- 硬件笔记之MacMini开启HiDPI
0x00 概述 先科普一下,有关retina和HiDPI那点事 ,Macmini在2k显示器的显示太小了,看起来费眼,没办法,苹果原生HiDPI是支持4k显示器的,所以以后买显示器,直接买4k的一步到 ...
- oracle 审计功能
Oracle 11g推出了审计功能,但这个功能会针对很多操作都产生审计文件.aud,日积月累下来这些文件也很多,默认情况下,系统为了节省资源,减少I/0操作,其审计功能是关闭的 一.审计功能关闭 1. ...
- 用redis构建分布式锁
单实例的实现 从2.6.12版本开始,redis为SET命令增加了一系列选项: EX seconds – 设置键key的过期时间,单位时秒 PX milliseconds – 设置键key的过期时间, ...
- Python各种图像库的图像的基本读写方式
目前主流的图像库有几下几种: 1. OpenCV 2. PIL(Pillow) 3. matplotlib.image 4. skimage 5. scipy. ...
- CF685B Kay and Snowflake 贪心
CF685B Kay and Snowflake 链接 CF 题目大意 给你一颗树,询问子树的重心 思路 贪心? 重心肯定是向上走的,所以直接向上跳就好了. 不优秀的时候就不要跳了 ,因为以后也不能更 ...