问题标签 [qmultimap]

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 回答
7293 浏览

c++ - QMap::insertMulti 还是 QMultiMap?

我应该在 QMap::insertMulti 和 QMultiMap 之间使用什么来处理:

2 -> abc
2 -> def
3 -> ghi
3 -> jkl

输入 2 个解决方案有什么区别?

0 投票
1 回答
337 浏览

c++ - QMultiMap 和 QDataStream

我在 QtAssistant 中看到 QDataStream 支持 QMap 并且 QMultiMap 继承了 QMap 。Qt 是否支持 QMultiMap 与 QDataStream 进行序列化?

0 投票
1 回答
483 浏览

c++ - 是否可以在自己的模板类中使用 QMultiMap::ConstIterator?

我想迭代一个QMultiMapusing

但编译器抱怨

导致

每次使用。我试过了ConstIteratorconst_iterator连慢的Iterator都没有成功。甚至可以将 Q(Multi)Map 与模板类一起使用吗?当定义(作为 void*)可以时,为什么我不能声明一个迭代器?

我使用以下代码(包括警卫省略):

0 投票
1 回答
219 浏览

c++ - 使用 QMap 是否可能有害?

我问的原因是:

QMap<TKey, TValue>公开继承。所以如果我打电话:

内部的所有调用lastKeyOf都静态绑定到它们的QMap版本而不是QMultiMap版本,因为QMap不打算用于多态使用(没有虚拟析构函数)。

我什至不确定这种用途叫什么。是对象切片吗?

0 投票
2 回答
9855 浏览

qt - QMap 和 QMultiMap 中的项目顺序

我想使用QMultiMap(派生自QMap)来存储键/值对。由于我可以多次使用密钥,因此我更喜欢使用QMultiMap.

假设我将按给定顺序插入以下对:

迭代地图时(最好使用 java 风格的迭代器),我需要保留等键对的顺序。即迭代"B" -> 77"B" -> 1应该完全按照插入顺序出现。不同的键之间的顺序无关紧要。

不幸的是,文档没有说明该细节。它说

使用 QMap,项目总是按键排序

但它没有说是否/如何对相等的键进行排序。

是否QMap保留具有相同键的对的插入顺序,还是可以以某种方式保留?

0 投票
1 回答
384 浏览

c++ - QMultiMap 结构为键,结构为值,比较运算符

我有两个结构,例如,第一个结构作为关键QMultiMap

第二个结构作为值:

我试着这样使用QMultiMap

在某些情况下,我确信每个键有多个值,但甚至无法获得一个。我认为问题在于比较。另外,我试过这个:

但在我的情况下,它似乎QMultiMap只是不使用此代码。

0 投票
1 回答
1714 浏览

c++ - 导出 QMultiMap到 QML

我有以下内容QObject

我正在尝试通过 main.cpp 公开/导出typedef QMultiMap<QString, QString> UeTypeLoggedUsersQML :qmlRegisterType

但是,当我尝试编译此代码时,出现以下错误:

错误:“staticMetaObject”不是“QMultiMap”的成员

为什么我会收到这个错误,我该如何摆脱它?

0 投票
1 回答
694 浏览

qml - 如何从 QMultiMap 中的值中获取键?

我有 QMultiMap 如下:

我的价值是“xyz”,我想把它作为关键。

示例:paramIDMap.getkey("xyz")像这样

这个怎么做?

预期的输出应该返回键。

0 投票
1 回答
50 浏览

c++ - 为什么这个本地 QMultiMap 在修改时会分离?

提供一些背景知识:在我的项目中,我在其中放置了一个调试断点,QMap::detach_helper因为我想看看我是否可以发现由于疏忽而导致隐式共享的 QMap 分离的任何事件,例如使用find何时constFind可以使用。我没想到会经常碰到它,因为大多数情况下我是通过 const 引用传递容器(作为旁注,显然有一个名为“clazy”的工具可以找到这些东西)。

然后我正在查看一些触发分离的内部 Qt v5.9.3 代码。堆栈跟踪显示我们正在从insertMulti此处调用的第一行函数中分离contexts

为什么本地 QMultiMap contexts(从未复制过)会隐式共享并需要分离?


我的理论

这可能不相关,但contexts该行的大小为零。

我的猜测是分离是由某种与空地图相关的优化引起的,但我不确定。我确实注意到,通过将调试断点放在QMap::detach_helper仅对非空映射执行的部分(即在 conditional 内if (d->header.left)) ,我得到的命中要少得多

0 投票
2 回答
91 浏览

c++ - 以 QVariant 为键的 QMultiMap

我有一个以 QVariant 为键的多图,但它不适用于 QByteArray。
函数 map.values("\xc2\x39\xc7\xe1") 正在返回地图的所有值。
这是一个小例子:

我还尝试使用 QMap 来查看会发生什么,它只向地图添加了一个元素。
有人可以向我解释这种行为吗?
我究竟做错了什么?