Domanda

Cosa devo usare tra QMap :: insertMulti e QMultiMap a manico:

2 -> abc
2 -> def
3 -> GHI
3 -> jkl

Qual è la differenza immettere le 2 soluzioni?

È stato utile?

Soluzione

classi contenitore :

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.

sembra che entrambi possono fare il lavoro. In questo documento c'è anche Algorithmic Complexity sezione in cui si può vedere che entrambe le classi hanno la stessa complessità.

vorrei scegliere QMultiMap solo per documentare meglio il fatto che sto per contenere più valori con la stessa chiave.

Altri suggerimenti

Entrambi possono servire a questo scopo. QMultiMap è in realtà una sottoclasse di QMap.

Se si è disposti ad avere più valori per singolo tasto, è possibile utilizzare: QMap: per l'inserimento uso insertMulti QMultiMap: per l'inserimento usa inserto

Se siete disposti ad avere un valore unico per singolo tasto, è possibile utilizzare: QMap: per l'inserimento usa inserto QMultiMap: per l'uso inserimento sostituire

Si può vedere che entrambi server può entrambi scopo. Ma, hanno ciascuno comportamento predefinito unico che abbina il suo nome. Inoltre, ogni hanno alcuni metodi o operatori che è conveniente per la singola / multifunzionale.

E 'meglio scegliere il tipo a seconda delle necessità. Si tratta di una buona pratica. Per esempio, se si utilizza QMap per la memorizzazione di singoli più valori chiave, qualche altra persona che sta attraversando i vostri membri della classe potrebbe avere l'impressione che si è disposti a salvare singole coppie di valori chiave (dal tipo di dati) Allo stesso modo, se si utilizza QMultiMap, chiunque legga la definizione può ottenere l'idea che i dati hanno un valore multiplo per stessa chiave.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top