5

キーと値のペアを格納するためにQMultiMap(から派生した)を使用したいと思います。QMapキーを複数回持つことができるので、 を使用したいと思いますQMultiMap

次のペアを指定された順序で挿入するとします。

"C" -> 5
"A" -> 10
"B" -> 77
"B" -> 1
"X" -> 314159

マップを反復処理する場合 (できれば Java スタイルの反復子を使用)、等キー ペアの順序を維持する必要があります。つまり"B" -> 77"B" -> 1反復時に正確に挿入順に表示される必要があります。異なるキー間の順序は関係ありません。

残念ながら、ドキュメントはその詳細について何も伝えていません。それは言う

QMap では、アイテムは常にキーでソートされます

ただし、等しいキーをソートするかどうか/どのようにソートするかについては述べていません。

等しいキーを持つペアの挿入順序を保持しますかQMap、それとも何らかの方法で保持できますか?

4

2 に答える 2

6

に関するQtドキュメントからQMap::iterator

項目を任意の順序で保存する QHash とは異なり、QMap は項目をキー順に保存します。同じキーを共有する項目 (QMap::insertMulti() を使用して挿入された、または unite() により) は、最も最近挿入された値から最も最近挿入された値まで連続して表示されます。

QMapそのため、等しいキーを持つペアの逆の挿入順序が維持されているようです。

于 2014-11-23T10:45:22.040 に答える