有沒有一種方法(除了將鍵作爲值的一部分存儲和遍歷映射)從STL映射,multimap(hash_map)和Perl鍵(%hash)中檢索鍵?檢索STL映射鍵
檢索STL映射鍵
回答
for (std::map<key, value>::iterator iter = m.begin(); iter != m.end(); ++iter)
iter->first; // this is the key
+1如果你想要的話,就拿出漂亮的包裝紙,但這就是它歸結的原因。 – 2010-11-12 20:17:55
+1我們總是忘記簡單的解決方案。 – Klaim 2010-11-12 20:51:37
如果您經常需要獲得這些密鑰(就像在一個大循環),那麼你可能有興趣使用boost::bimap。否則,您可以使用正確的Nikola解決方案。
有時我會在將元素添加到地圖時將密鑰副本放在另一個容器中。它需要確保同步兩個容器,但是如果它足夠隔離(在一個類中),那麼它很容易設置。
我認爲'boost :: bimap'在這裏是一個矯枉過正的東西。這裏沒有雙向關係。 – wilhelmtell 2010-11-12 20:59:22
是的,正如我所說,這取決於爲什麼需要檢索密鑰。 – Klaim 2010-11-12 22:14:22
您可以使用for循環。
for (const auto & keyVal : myMap)
keyVal.first;
- 1. 檢索映射
- 2. STL對輸入與STL映射
- 3. 鍵重映射
- 4. 鍵值映射
- 5. 如何從OpenCV FileNode映射中檢索鍵值對?
- 6. 如何從Microsoft IME程序檢索擊鍵/字符映射表?
- 7. STL映射在搜索嘗試時拋出錯誤
- 8. 用一對索引STL映射是一個好主意嗎?
- 9. Java泛型 - 映射(鍵入)映射
- 10. 映射映射鍵的最佳方式
- 11. 如何映射映射的鍵和值?
- 12. 作爲默認參數的STL映射
- 13. STL映射值構造函數
- 14. STL映射和指針問題
- 15. vc6中的STL映射分配錯誤
- 16. 使用STL映射調試代碼
- 17. 共享內存中的C++ STL映射
- 18. C++,stl函數向量指針映射
- 19. 從嵌套散列映射檢索值
- 20. 在映射中檢索不同的值
- 21. 檢索從該映射爲陣列
- 22. 檢索Spark Mllib StringIndexer列映射
- 23. NHibernate映射外鍵
- 24. 映射VIM關鍵
- 25. NHibernate映射外鍵
- 26. Hibernate外鍵映射?
- 27. 接口,映射鍵
- 28. 彈性搜索映射不良映射
- 29. 將兩個外鍵映射到一個主鍵(XML映射)
- 30. WPF鍵盤重映射
您是否試圖獲取所有密鑰或與單個值關聯的密鑰? – 2010-11-12 21:00:04