qmap :: insertmultiまたはqmultimap?
質問
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:inserting insertmulti qmultimap:inSerting inserting insert
単一キーに単一の値を持っている場合は、次のことを使用できます。QMAP:挿入挿入qmultimap:挿入用使用
どちらも両方の目的をサーバーできることがわかります。ただし、それぞれに名前と一致する独自のデフォルト動作があります。また、それぞれには、シングル/マルチに便利な方法または演算子があります。
必要に応じてタイプを選択することをお勧めします。それは良い習慣です。たとえば、QMAPを使用して単一のキーマルチバリューを保存する場合、クラスメンバーを通過している他の人は、QMultImapを使用する場合、単一のキー値ペア(データ型から)を同様に保存することをいとわないという印象を受ける可能性があります。 、定義を読んでいる人なら誰でも、データが同じキーに対して複数の値を持つという考えを得ることができます。
所属していません StackOverflow