我应该在QMap::i和QMultiMap之间使用什么来处理:
2 -> abc
2个->定义
3个-> ghi
3个-> jkl
输入这两个解决方案有什么区别?
发布于 2011-01-07 19:28:34
正在读取Container Classes
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只是为了更好地证明我将用相同的键保存多个值。
发布于 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,任何阅读该定义的人都会认为同一个键将具有多个值。
https://stackoverflow.com/questions/4624791
复制相似问题