Frage

Was soll ich verwenden, um zwischen QMap :: insertMulti und QMultiMap zum Griff:

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

Was ist der Unterschied geben Sie die 2 Lösungen?

War es hilfreich?

Lösung

Beim Lesen Containerklassen :

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.

es sieht so aus, sowohl die Arbeit erledigen kann. In diesem Dokument ist es auch algorithmische Komplexität wo Sie sehen, dass beide Klassen die gleiche Komplexität haben.

Ich würde wählen QMultiMap nur besser zu dokumentieren die Tatsache, dass ich mehrere Werte mit dem gleichen Schlüssel halten werde.

Andere Tipps

Beide können diesem Zweck dienen. QMultiMap ist eigentlich eine Unterklasse von QMap.

Wenn Sie bereit sind, mehrere Werte für einzelne Schlüssel haben, können Sie verwenden: QMap: für das Einfügen insertMulti QMultiMap: zum Einsetzen Verwendung Einsatzes

Wenn Sie bereit sind Einzelwert für einzelne Schlüssel haben, können Sie verwenden: QMap: für den Einsatz insert QMultiMap: zum Einsetzen Verwendung ersetzen

Sie können sehen, dass beide Server sowohl Zweck. Aber haben jeweils einzigartige Standardverhalten, das seinen Namen übereinstimmt. Auch haben jeweils einige Methoden oder Operatoren, die für Einzel- / Multi bequem ist.

Es ist besser, Typ wählen je nach Bedarf. Es ist eine gute Praxis. Zum Beispiel, wenn Sie QMap zum Speichern einzelne Schlüssel mehr Werte verwenden, eine andere Person, die durch Ihre Teilnehmer, wird vielleicht den Eindruck, dass Sie bereit sind, einzelne Schlüsselwertepaare (vom Datentyp) zu speichern Und falls Sie QMultiMap verwenden, kann jeder die Definition liest, kann auf die Idee kommen, dass die Daten-Mehrwert für denselben Schlüssel haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top