首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QMap::insertMulti多还是QMultiMap?

QMap::insertMulti多还是QMultiMap?
EN

Stack Overflow用户
提问于 2011-01-07 18:59:52
回答 2查看 7.2K关注 0票数 6

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

2 -> abc

2个->定义

3个-> ghi

3个-> jkl

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-07 19:28:34

正在读取Container Classes

代码语言:javascript
复制
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.

看起来两个人都能胜任这项工作。在本文中,还有Algorithmic Complexity部分,您可以看到这两个类具有相同的复杂性。

我选择QMultiMap只是为了更好地证明我将用相同的键保存多个值。

票数 7
EN

Stack Overflow用户

发布于 2011-01-07 19:23:17

这两种方法都可以达到这个目的。QMultiMap实际上是QMap的子类。

如果希望单个键有多个值,可以使用: QMap : for inserting use insertMulti QMultiMap : for inserting use insert

如果您希望单个键具有单个值,则可以使用: QMap : for insert use insert QMultiMap : for insert use replace

您可以看到,两者都可以服务于这两个目的。但是,每一个都有与其名称匹配的唯一默认行为。此外,每个都有一些方法或运算符,这是方便的单/多。

最好根据您的需要选择类型。这是一个很好的实践。例如,如果您使用QMap来存储单个键多个值,那么其他查看您的类成员的人可能会得到这样的印象:您愿意保存单个键值对(来自数据类型)。类似地,如果您使用QMultiMap,任何阅读该定义的人都会认为同一个键将具有多个值。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4624791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档