问题标签 [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.
c++ - QMap::insertMulti 还是 QMultiMap?
我应该在 QMap::insertMulti 和 QMultiMap 之间使用什么来处理:
2 -> abc
2 -> def
3 -> ghi
3 -> jkl
输入 2 个解决方案有什么区别?
c++ - QMultiMap 和 QDataStream
我在 QtAssistant 中看到 QDataStream 支持 QMap 并且 QMultiMap 继承了 QMap 。Qt 是否支持 QMultiMap 与 QDataStream 进行序列化?
c++ - 是否可以在自己的模板类中使用 QMultiMap::ConstIterator?
我想迭代一个QMultiMap
using
但编译器抱怨
导致
每次使用。我试过了ConstIterator
,const_iterator
连慢的Iterator
都没有成功。甚至可以将 Q(Multi)Map 与模板类一起使用吗?当定义(作为 void*)可以时,为什么我不能声明一个迭代器?
我使用以下代码(包括警卫省略):
c++ - 使用 QMap 是否可能有害?
我问的原因是:
QMap<TKey, TValue>
公开继承。所以如果我打电话:
内部的所有调用lastKeyOf
都静态绑定到它们的QMap
版本而不是QMultiMap
版本,因为QMap
不打算用于多态使用(没有虚拟析构函数)。
我什至不确定这种用途叫什么。是对象切片吗?
qt - QMap 和 QMultiMap 中的项目顺序
我想使用QMultiMap
(派生自QMap
)来存储键/值对。由于我可以多次使用密钥,因此我更喜欢使用QMultiMap
.
假设我将按给定顺序插入以下对:
迭代地图时(最好使用 java 风格的迭代器),我需要保留等键对的顺序。即迭代"B" -> 77
时"B" -> 1
应该完全按照插入顺序出现。不同的键之间的顺序无关紧要。
不幸的是,文档没有说明该细节。它说
使用 QMap,项目总是按键排序
但它没有说是否/如何对相等的键进行排序。
是否QMap
保留具有相同键的对的插入顺序,还是可以以某种方式保留?
c++ - QMultiMap 结构为键,结构为值,比较运算符
我有两个结构,例如,第一个结构作为关键QMultiMap
:
第二个结构作为值:
我试着这样使用QMultiMap
:
在某些情况下,我确信每个键有多个值,但甚至无法获得一个。我认为问题在于比较。另外,我试过这个:
但在我的情况下,它似乎QMultiMap
只是不使用此代码。
c++ - 导出 QMultiMap到 QML
我有以下内容QObject
:
我正在尝试通过 main.cpp 公开/导出到typedef QMultiMap<QString, QString> UeTypeLoggedUsers
QML :qmlRegisterType
但是,当我尝试编译此代码时,出现以下错误:
错误:“staticMetaObject”不是“QMultiMap”的成员
为什么我会收到这个错误,我该如何摆脱它?
qml - 如何从 QMultiMap 中的值中获取键?
我有 QMultiMap 如下:
我的价值是“xyz”,我想把它作为关键。
示例:paramIDMap.getkey("xyz")
像这样
这个怎么做?
预期的输出应该返回键。
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)
) ,我得到的命中要少得多
c++ - 以 QVariant 为键的 QMultiMap
我有一个以 QVariant 为键的多图,但它不适用于 QByteArray。
函数 map.values("\xc2\x39\xc7\xe1") 正在返回地图的所有值。
这是一个小例子:
我还尝试使用 QMap 来查看会发生什么,它只向地图添加了一个元素。
有人可以向我解释这种行为吗?
我究竟做错了什么?