سؤال

ما الذي يجب أن أستخدمه بين QMAP :: insertmulti و Qmultimap للتعامل:

2 -> ABC
2 -> def
3 -> GHI
3 -> JKL

ما الفرق أدخل الحلول 2؟

هل كانت مفيدة؟

المحلول

قراءة فصول الحاويات:

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.

يبدو أن كلاهما يمكنه القيام بالمهمة. في هذه الوثيقة هناك أيضا التعقيد الخوارزمي القسم حيث يمكنك أن ترى أن كلا الفئتين لهما نفس التعقيد.

ساختار QMultiMap فقط لتوثيق حقيقة أنني سأعقد قيمًا متعددة بنفس المفتاح.

نصائح أخرى

كلاهما يمكن أن يخدم هذا الغرض. QMultimap هي في الواقع فئة فرعية من QMAP.

إذا كنت على استعداد للحصول على قيم متعددة للمفتاح الفردي ، فيمكنك استخدام: QMAP: لإدراج استخدام insertMulti Qmultimap: لإدراج استخدام إدراج

إذا كنت على استعداد للحصول على قيمة واحدة لمفتاح واحد ، فيمكنك استخدام: QMAP: لإدخال استخدام QmultImap: لإدراج الاستخدام استبدال

يمكنك أن ترى أن كلاهما يمكن أن يخادم كلا الغرضين. ولكن لكل منها سلوك افتراضي فريد يطابق اسمه. أيضًا ، لكل منها بعض الطرق أو العوامل المريحة لـ Single/Multi.

من الأفضل اختيار النوع اعتمادًا على حاجتك. إنها ممارسة جيدة. على سبيل المثال ، إذا كنت تستخدم QMAP لتخزين قيم متعددة مفتاح واحد ، فقد يحصل شخص آخر يمر عبر أعضاء الفصل على انطباع بأنك على استعداد لحفظ أزواج القيمة الرئيسية المفردة (من نوع البيانات) بالمثل ، إذا كنت تستخدم QMultimap ، يمكن لأي شخص يقرأ التعريف الحصول على فكرة أن البيانات سيكون لها قيمة متعددة لنفس المفتاح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top