c++qtqmapqmultimap

QMap::insertMulti or QMultiMap?


What should i use between QMap::insertMulti and QMultiMap to handle :

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

What's the difference enter the 2 solutions ?


Solution

  • Reading 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.
    

    it looks like both can do the job. In this document there is also Algorithmic Complexity section where you can see that both classes have the same complexity.

    I would choose QMultiMap just to better document the fact I'm going to hold multiple values with the same key.