问题标签 [qhash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
445 浏览

c++ - 您如何定义具有异构值类型的 QHash?

我需要一个QHash容器,它接受quint8键但将异构类型作为值,所有这些都将是 Qt 容器或类。作为一个例子,我可能想插入一个QDateQTime对象,甚至quint8作为值。

如何定义这样的类型,以便可以在其他类中使用它并在运行时适当填充?我希望能够将其作为全局类型访问。是否可以?

NB 问题已被编辑以更好地反映 OP 的意图。编辑前写的答案适用于原始问题。

0 投票
2 回答
2207 浏览

c++ - 从 QHash 中删除元素范围

我使用 QHash 作为容器,我的任务是删除所有满足谓词的项目。起初我想使用Erase-remove 习惯用法,结果发现 QHash 没有删除范围的选项,而只有一个通过迭代器删除单个元素的函数

std::unordered_map(概念上接近Qt的QHash)具有去除范围的功能

这意味着一个问题:为什么 QHash 没有类似的功能以及如何从满足谓词的 QHash 中删除项目的最佳方式?

0 投票
1 回答
330 浏览

c++ - 如何在 Qhash 中存储 Qfile

我想将数据随机写入许多不同的文件,所以我将 QFile * 存储到 Qhash,但它接缝不起作用。并且有报告

QObject::connect: 没有这样的信号 QObject::aboutToClose() in ....\include\QtCore\5.3.2\QtCore/private/../../../../../src/corelib /io/qtextstream_p.h:75

你能帮我解决这个问题吗?

这是实现我的想法的测试代码。

0 投票
1 回答
867 浏览

c++ - Qhash的Qhash报错

我用qhash的qhash写了一个函数,如下图:

但是,这一行有一个错误:

错误是:

错误:将 'const QHash' 作为 'QHash::iterator QHash::insert(const Key&, const T&) 的 'this' 参数传递 [with Key = int; T = int]' 丢弃限定符 [-fpermissive]motifByCell2seq->value(motif).value(cell).insert(si,1);

即使我将此行更改为以下内容,仍然存在错误

你能帮我找出问题吗?

0 投票
1 回答
748 浏览

c++ - 在 C++ 中使用 QStringList 构建 QHash

在 C++ 中,我正在尝试构建一个专门的 QHash,如下所示:

这样我就可以存储这种类型的数据:

我在使用 C++ 语法来正确构建散列以及如何检索散列值时遇到问题。例如,如果给定 B,我希望循环并返回 5,6。

这是我在添加新键值对时附加到哈希的逻辑的黑客尝试:

我不确定这是否有效,因为我无法为 myhash 创建检索循环逻辑。

谁能帮我从这样的 QHash 构建和检索数据?

0 投票
2 回答
1001 浏览

c++ - 为什么 Qt 的 qHash() 没有 std::shared_ptr 的重载?

令我惊讶的是,我刚刚发现以下代码在使用 Qt 5.4 的 C++14 中无法立即编译:

问题是,就我所见, 没有qHash()方法或任何其他智能指针的重载:http: //doc.qt.io/qt-5/qhash.html#related-non-membersstd::shared_ptr

对我来说,有以下重载(或类似的东西)似乎很自然:

但它不存在。这不能简单地是 Qt 开发人员忽略的事情。我需要包含一个特殊的标题吗?这不存在的原因是什么?

0 投票
1 回答
464 浏览

c++ - C++中的QHashIterator

我用 C++ 开发了一个游戏,并希望确保一切都正确完成。使用 QHashIterator 来检查列表中的哪个项目具有最低值(寻路的 F 成本)是否是一个好的解决方案。

我的代码片段:

如果不?有更好的改进吗?

我还发现了一些关于 std::priority_queue 的信息。它比 QHashIterator 更好吗?

对于那些不大的游戏世界来说,这可能不是问题。但是,当游戏世界很大时(例如 + 10000 次计算),我正在寻找合适的解决方案。任何标记?

0 投票
1 回答
252 浏览

qt - 多次迭代后不断生成 QPixmap* 失败

我正在使用以下代码来生成QPixmap*指针,然后将它们插入QHash<QString, QPixmap*>(我将只显示指针生成代码,因为这是失败的代码)。

我遇到的问题如下:对于前大约 200 次调用,该方法工作正常 - 它在循环访问目录的图像文件时被调用。然后突然QPixmap*开始QPixmap(null)无缘无故地返回。QImage发生这种情况时也为空。我已检查并确保路径正常。此外,我尝试过使用各种图像集,但总是会发生同样的情况——它在 ~200 次调用中运行没有问题,然后开始生成空值。

任何帮助,将不胜感激。

谢谢你。

0 投票
2 回答
6034 浏览

c++ - QSet:qHash 和自定义类出错

我想创建一个QSet<Tag>我想在我的程序中使用的。Tag是我的自定义课程。

当我构建代码时,我得到关于qHash重载的 gcc 错误:

我已经为该类创建了类、theoperator==和 the qHash。然后我typedef为班级创建了一个,但这不起作用。

我做错了什么?

标签.h

标签.cpp

练习.h

练习.cpp

0 投票
3 回答
351 浏览

c++ - 用自己的类序列化 QHash?

我有一个QHash<const QString id, MyClass>, 而 MyClass 只是一些带有 getter 和 setter 的 QString quint8 值的集合。MyClass 也有一个QDataStream &operator<<(QDataStream &ds, const MyClass &obj)被覆盖的,那里。

要序列化我使用:

现在,我对另一个感到困惑:

我会知道那个序列化 QHash 的长度吗?