私は検索して、マルチマップを使用して同等のキーのセットを異なる値にマップできることを発見しました。私はその逆をする方法が不思議ですか?それは異なるキーを同じ値にマップすることですか?そのためのstlデータ構造はありますか?異なるキーをC++の同じ値にマッピング
答えて
複数のキーが同じ値にマップされるようにstd::map
を設定できます。そこには何もありません。しかし、おそらくあなたが探しているのは、マップ全体を反復することなく、指定された値にマップするすべてのキーを見つける能力です。そのようなデータ構造はないと思います。
@Sahu Yea実際には、次のようなマップを作成しました:std :: map
@ dl23linの場合は、この質問を削除して、試したコード、見たいもの、実際に見ているコードを別の質問で尋ねる必要があります。それはこの質問よりも役に立つでしょう。 –
通常はstd::map
(またはstd::unordered_map
)です。あなたはそれを行う方法には、いくつかの選択肢があります:あなたが必要
- 通常のキーと値のストアを、その値は、実際のデータへのポインタである場合それは、必要に応じて(それはおそらく、それは価値があるよりも多くのトラブルこれを処理するのですけれども、私は本当にお勧め何を)キーを収集しないように構造のいくつかの種類(おそらく
std::tuple
)を使用しstd::shared_ptr
- を使用して、共有することができ
- 使用Boost multi-index containers
Boostを使用すると、すぐに使用できるソリューションがあります。プロジェクトでBoostを既に使用している場合(これはライブラリの大きなセットであり、標準ライブラリを補完しています)、私はそれを選ぶのが簡単だと思いますその解決策。
- 1. 同じバケットに異なるハッシュコードを持つキー。 C++
- 2. プロパティファイルjavaとは異なる値を持つ同じキー
- 3. タイムスタンプ。同じ日付の異なる値
- 4. Hibernate:異なる主キーを持つ同じテーブルに複数のクラスをマッピングする
- 5. C3.jsと異なるデータに同じjsonキーを使用
- 6. (my)SQLデータベース - 異なる値の同じ値を格納する
- 7. NHibernate - 異なるキーで同じテーブルへの複数のJOIN
- 8. 同じ行に3つの異なる値を表示
- 9. AUTOMAPPERで異なるアセンブリの同じ基本クラスを持つエンティティをマッピングする
- 10. 異なる値への列挙のマッピング
- 11. wicket:マークアップで異なるコンテンツを生成するリクエストで同じクラスに異なるパスをマッピングします
- 12. 同じキーが異なる値を持つハッシュの配列をマージし、付加価値を
- 13. microsoft teamfoundation GACアセンブリ、同じバージョン/キーだが内容は異なる
- 14. Python:異なる日付に同じ値を返すtime.mktime
- 15. 同じコンポーネント、異なるスタイル
- 16. 同じ式がObjective-CとSwiftで異なる値を返します
- 17. ggplot2の同じ凡例の中にある異なる凡例キー
- 18. ジャクソンJSONから異なるデータ型の同じattrubuteのJavaマッピングへ
- 19. 異なる値を持つJavaの同じ列挙型
- 20. XSLT:同じ名前空間に異なる値
- 21. 異なる辞書の同じキーに対する複数の値の合計Python
- 22. 同じjavascriptの異なるサイト、大幅に異なるパフォーマンス
- 23. DSA暗号化サービスプロバイダの同じキーで同じデータを署名すると、結果が異なる
- 24. C#異なるパラメータで同じWindowsサービスを登録する
- 25. 同じテーブルNHibernateのマッピング
- 26. が同じ値を持つグラフが異なる見出し
- 27. `sample()`は同じ `set.seed() 'で異なる値を返します
- 28. コードは異なる値で同じ結果を返す
- 29. SQL Server NTILE - 異なる四分位数の同じ値
- 30. 同じウェブグリッドコントロールに異なるオブジェクト
'map'では値が一意である必要はありません。ちょうどキー。 – cHao
値がキーになるようにマップを反転してください。 –