2011-01-07 14 views

Antwort

6

Lesen 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. 

es sieht so aus, sowohl die Arbeit erledigen kann. In diesem Dokument gibt es auch Algorithmic Complexity Abschnitt, wo Sie sehen können, dass beide Klassen die gleiche Komplexität haben.

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

4

Beide können diesen Zweck erfüllen. 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 den Einsatz insertMulti QMultiMap einfügen: zum Einsetzen Verwendung einfügen

Wenn Sie bereit sind Einzelwert für einzelne Schlüssel zu haben, Sie können verwenden: QMap: zum Einfügen verwenden einfügen QMultiMap: zum Einfügen verwenden ersetzen

Sie können sehen, dass beide beide Server dienen können. Aber jedes hat ein eigenes Standardverhalten, das seinem Namen entspricht. Außerdem haben sie einige Methoden oder Operatoren, die für Single/Multi geeignet sind.

Es ist besser, den Typ je nach Bedarf zu wählen. Es ist eine gute Übung. Wenn Sie beispielsweise QMap zum Speichern einzelner Schlüssel mehrere Werte verwenden, könnte eine andere Person, die Ihre Klassenmitglieder durchläuft, den Eindruck haben, dass Sie bereit sind, einzelne Schlüsselwertpaare (vom Datentyp) zu speichern Ähnlich, wenn Sie verwenden QMultiMap kann jeder, der die Definition liest, die Idee bekommen, dass die Daten mehrere Werte für denselben Schlüssel haben.

Verwandte Themen