2011-01-07 9 views

cevap

6

: Her iki işi yapabilir gibi

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. 

görünüyor. Bu belgede, her iki sınıfın da aynı karmaşıklığa sahip olduğunu görebileceğiniz Algorithmic Complexity bölümü bulunmaktadır.

Sadece aynı anahtarla birden fazla değer tutacağım gerçeğini daha iyi belgelemek için QMultiMap seçerim.

4

Her ikisi de bu amaca hizmet edebilir. QMultiMap aslında QMap'ın bir alt sınıfıdır. Eğer tek bir tuş için birden fazla değere sahip istekli iseniz

, şunları kullanabilirsiniz: QMap: Kullanım insertMulti QMultiMap eklemek için: Eğer tek anahtar için tek bir değere sahip istekli iseniz kullanım

eklemek eklemek için, Kullanabilirsiniz: QMap: kullanım için insert eklemek QMultiMap: kullanım eklemek için kullanın

Her ikisinin de amaca hizmet edebilir. Ancak, her birinin adıyla eşleşen benzersiz varsayılan davranışı vardır. Ayrıca, her birinin tek/çoklu için uygun olan bazı yöntemleri veya operatörleri vardır.

Gereksiniminize bağlı olarak türü seçmek daha iyidir. Bu iyi bir uygulamadır. Örneğin, tek anahtarlı birden çok değer depolamak için QMap kullanıyorsanız, sınıf üyelerinizden geçmekte olan başka bir kişi, tek anahtar değer çiftlerini kaydetmeye istekli olduğunuz izlenimini alabilir (veri türünden) Benzer şekilde, QMultiMap, tanımı okuyan herkes, verilerin aynı anahtar için birden çok değere sahip olacağı fikrini alabilir. Container Classes Okuma

İlgili konular