Co należy użyć między QMap :: insertMulti i QMultiMap obsługiwać:QMap :: insertMulti lub QMultiMap?
2 -> abc
2 -> def
3 -> ghi
3 -> jkl
Jaka jest różnica wejść 2 rozwiązania?
Co należy użyć między QMap :: insertMulti i QMultiMap obsługiwać:QMap :: insertMulti lub QMultiMap?
2 -> abc
2 -> def
3 -> ghi
3 -> jkl
Jaka jest różnica wejść 2 rozwiązania?
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.
wygląda zarówno może wykonać pracę. W tym dokumencie jest także sekcja Algorithmic Complexity, w której widać, że obie klasy mają tę samą złożoność.
Wybrałbym QMultiMap
tylko po to, aby lepiej udokumentować fakt, że zamierzam trzymać wiele wartości za pomocą tego samego klucza.
Obie mogą służyć do tego celu. QMultiMap jest w rzeczywistości podklasą QMap.
Jeśli są chętni, aby mieć wiele wartości dla jednego klucza, można użyć: QMap: do wrzucania użytkowania insertMulti QMultiMap: do wrzucania wstawić użycie
Jeśli są chętni, aby mieć jedną wartość dla pojedynczego klawisza, można użyć: QMap: do wstawienia wstawki użytkowej QMultiMap: do wstawienia użyj zamień
Widać, że oba serwery mogą służyć obu celom. Ale każdy ma unikalne domyślne zachowanie, które pasuje do jego nazwy. Ponadto, każdy ma kilka metod lub operatorów, co jest wygodne dla pojedynczego/wielu.
Lepiej wybrać typ w zależności od potrzeb. To dobra praktyka. Na przykład, jeśli używasz QMap do przechowywania pojedynczego klucza wielu wartości, inna osoba przechodząca przez twoje klasy może odnieść wrażenie, że chcesz zapisać pary pojedynczych par kluczy (z rodzaju danych). Podobnie, jeśli używasz QMultiMap, każdy czytający definicję może pomyśleć, że dane będą miały wiele wartości dla tego samego klucza.