我应该在qmap :: insertmulti和qmultimap之间使用什么来处理:

2-> ABC
2-> def
3-> ghi
3-> JKL

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

有帮助吗?

解决方案

阅读 容器类:

QMap<Key, T>
This provides a dictionary (associative array) that maps keys of type Key to values of type T. Normally each key is associated with a single value. QMap stores its data in Key order; if order doesn't matter QHash is a faster alternative.

QMultiMap<Key, T>
This is a convenience subclass of QMap that provides a nice interface for multi-valued maps, i.e. maps where one key can be associated with multiple values.

看来两者都可以完成这项工作。在本文档中也有 算法复杂性 您可以看到两个类都具有相同复杂性的部分。

我会选 QMultiMap 为了更好地记录我将使用相同键保持多个值的事实。

其他提示

两者都可以达到这个目的。 Qmultimap实际上是QMAP的子类。

如果您愿意对单键有多个值,则可以使用:QMAP:用于插入使用insertmulti qmultimap:用于插入insert insert insert

如果您愿意对单键有单个值,则可以使用:QMAP:用于插入insert qmultimap:用于插入使用替换

您可以看到两者都可以服务两个。但是,每个人都有与其名称相匹配的唯一默认行为。另外,每个方法都有一些方法或运算符,这些方法或操作员对于单个/多人来说很方便。

最好根据您的需求选择类型。这是一个很好的做法。例如,如果您使用QMAP来存储单个密钥多重值,那么其他一些正在通过您的班级成员的人可能会得到您愿意保存单个密钥值对(来自数据类型)的印象,如果您使用qmultimap ,任何阅读该定义的人都可以得到这样的想法,即数据将对同一密钥具有多个值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top