Pregunta

¿Qué debo usar entre QMap :: insertMulti y QMultiMap de mango:

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

¿Cuál es la diferencia Introduce las 2 soluciones?

¿Fue útil?

Solución

clases de contenedores :

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.

parece que ambos pueden hacer el trabajo. En este documento también es algorítmico Complejidad sección donde puede ver que ambas clases tienen la misma complejidad.

Yo elegiría QMultiMap sólo para documentar mejor el hecho de que voy a contener varios valores con la misma clave.

Otros consejos

Ambos pueden servir a este propósito. QMultiMap es en realidad una subclase de QMap.

Si usted está dispuesto a tener varios valores para una sola tecla, se puede utilizar: QMap: para insertar el uso insertMulti QMultiMap: para insertar usar inserto

Si usted está dispuesto a tener un valor único para una sola tecla, se puede utilizar: QMap: para insertar usar inserto QMultiMap: para su uso insertando reemplace

Se puede ver que tanto el servidor ambos puedan propósito. Sin embargo, cada uno tiene un comportamiento por defecto único que coincide con su nombre. Además, cada uno tiene algunos métodos o los operadores que es conveniente para el solo / multi.

Es mejor elegir el tipo en función de su necesidad. Es una práctica buena. Por ejemplo, si se utiliza para almacenar QMap individuales múltiples valores clave, alguna otra persona que está pasando por los miembros de su clase podría tener la impresión de que usted está dispuesto a salvar a pares de valores clave individuales (del tipo de datos) Del mismo modo, si se utiliza QMultiMap, cualquiera que lea la definición puede tener la idea de que los datos tendrán un valor múltiple para la misma clave.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top