所以我搜索了一遍,發現我們可以使用多重映射將一組等效鍵映射到不同的值。我想知道如何做相反的事情?那是將不同的鍵映射到相同的值?有沒有一個stl的數據結構?在C++中將不同的鍵映射到相同的值
回答
您可以有一個std::map
,使多個鍵映射到相同的值。沒有什麼反對的。但是,您可能要查找的是能夠查找映射到給定值的所有鍵,而無需遍歷整個地圖。我不認爲有這樣的數據結構。
@Sahu Yea其實我創建了一張如下圖:std :: map
@ dl23lin,在這種情況下,你應該刪除這個問題,並詢問你試過的代碼,你期望看到的是什麼,以及實際看到的是什麼。這比這個問題更有用。 –
正常的std::map
(或std::unordered_map
)可以做到這一點。您對如何做幾個選擇是:
- 普通key-value存儲,在那裏你複製值需要
- 普通key-value存儲,但其中的值是一個指向實際數據可以共享,可選擇使用
std::shared_ptr
- 使用某種類型的結構(一
std::tuple
也許)領取鑰匙(儘管它可能更多的麻煩處理這比它的價值,沒有什麼我真的建議) - 使用Boost multi-index containers
藉助Boost,您可以使用現成的解決方案,並且如果您已經在項目中使用了Boost(它是一套很好的庫,並且很好地補充了標準庫),我認爲選擇它是不容易的該解決方案。
- 1. 鍵映射到HashMap中的相同值?
- 2. 如何將不同的鍵映射到相同的值,但只聲明一次?
- 3. 映射多個鍵,相同的值
- 4. 鍵映射到不同的鍵
- 5. 多個字段映射到相同的外鍵的JPA映射
- 6. Jaxb 2將不同的元素映射到相同的屬性
- 7. 將兩個不同的servlet映射到相同的URL模式
- 8. 將不同的網址映射到相同的視圖
- 9. 不同的映射爲相同的URL
- 10. 具有相同的hashCode相等的對象不映射到相同值的HashMap
- 11. Emacs相同的鍵盤映射不同的命令
- 12. 查找多個鍵映射到相同的值
- 13. 字典與多個鍵映射到相同的值
- 14. 返回不同值的C++映射
- 15. FluentNHibernate映射與相同的主鍵
- 16. 在映射中檢索不同的值
- 17. 的javascript:映射相同的密鑰不同的值
- 18. 2個外鍵映射到相同的主鍵問題
- 19. Windows - 將鍵盤按鍵映射到與鼠標左鍵相同的動作
- 20. 用於將多個鍵映射到相同值的Java數據結構
- 21. 地圖串矢量或不同的鍵映射到一個值
- 22. 將值映射到Pandas中不同數據幀的數據幀
- 23. 將JSON映射到具有不同關鍵字的Java對象
- 24. Spring Integration Splitter將鍵映射到不同的通道
- 25. Nibernate映射到兩列相同的表
- 26. XML反序列化:不同的XML架構映射到相同的C#類
- 27. 將兩個不同的實體映射到同一個表中?
- 28. TFS:映射到不同用戶的相同文件夾
- 29. 如何處理映射到相同響應的不同請求?
- 30. JPA onetomany映射不同值
'map'不要求這些值是唯一的。只是鑰匙。 – cHao
只是反轉地圖,所以值是關鍵,反之亦然 –