有沒有辦法從STL hash_map獲取所有密鑰?或者我必須使用像set或hash_set之類的東西在插入之前記錄它們?如何從STL hash_map獲取所有密鑰?
2
A
回答
6
hash_map<string, void *> hashMap;
vector<string> keys;
keys.reserve(hashMap.size());
for (hash_map<string, void *>::iterator iter = hashMap.begin();
iter != hashMap.end();
++iter)
{
keys.push_back(iter->first);
}
+0
我認爲你的意思是「iter.first」 – 2013-07-15 18:03:02
4
簡單地遍歷hash_map
;對於每次迭代,iter->first
是關鍵。
4
大廈伊戈爾OKS'回答:
hash_map<string, void *> hashMap;
vector<string> keys;
keys.reserve(hashMap.size());
transform(hashMap.begin(), hashMap.end(), back_inserter(keys),
select1st<hash_map<string, void*>::value_type>());
0
您可能希望通過的hash_map迭代,並提取一對由當前迭代器價值指向的第一個元素(一對的第一個元素是事實關鍵)。
// Assuming that hm is an instance of hash_map:
for (auto it = hm.begin(); it != hm.end(); ++it) // for each item in the hash map:
{
// it->first is current key
// ... you can push_back it to a vector<Key> or do whatever you want
}
這是一個可能的功能來提取一個的hash_map鍵向量:
template <typename Key, typename Type, typename Traits, typename Allocator>
vector<Key> extract_keys(const hash_map<Key, Type, Traits, Allocator> & hm)
{
vector<Key> keys;
// If C++11 'auto' is not available in your C++ compiler, use:
//
// typename hash_map<Key, Type, Traits, Allocator>::const_iterator it;
// for (it = hm.begin(); ...)
//
for (auto it = hm.begin(); it != hm.end(); ++it)
{
keys.push_back(it->first);
}
return keys;
}
相關問題
- 1. 在Stl Hash_map中查找密鑰
- 2. 字典/ hash_map密鑰大小
- 3. 如何從屬性文件中獲取所有密鑰?
- 4. 如何從Parse.com獲取單個密鑰的所有值
- 5. 如何使用redis模板從Redis獲取所有密鑰
- 6. Python,gae,ndb - 獲取所有密鑰
- 7. Sharepoint SiteUserInfoList獲取所有密鑰和值
- 8. 獲取play.api.libs.json.JsValue的所有密鑰
- 9. 獲取特定密鑰的所有值
- 10. 如何獲得列表中所有密鑰的密鑰列表?
- 11. Java:從編碼密鑰獲取密鑰
- 12. 獲取所有redis數據庫中的所有密鑰和值?
- 13. 如何從$ Keys獲取密鑰
- 14. 如何從GunDb節點獲取密鑰
- 15. 如何從ContentValues獲取密鑰?
- 16. 如何從Yubico設備獲取密鑰
- 17. 如何從NSDictionary獲取密鑰對象?
- 18. 如何從Firebase獲取項目密鑰
- 19. 如何從Firebase獲取密鑰?
- 20. 如何從TDictionary獲取密鑰?
- 21. 如何從以下json獲取密鑰
- 22. 如何從密鑰中的公鑰獲取密碼
- 23. 如何獲取ResourceManager中的所有密鑰
- 24. 如何使用php redis獲取redis中的所有密鑰?
- 25. 如何使用crediscache獲取所有redis密鑰
- 26. Prestodb map(varchar,varchar):如何獲取所有可能的密鑰?
- 27. node-hashtable - 如何獲取所有密鑰的集合?
- 28. 如何獲取命名空間中的所有密鑰?
- 29. 從Multiindex中獲取密鑰?
- 30. 從JTextArea獲取密鑰
注意,在所有提出的解決方案的關鍵是無序的(這是罰款,爲什麼訂單,如果沒有必要?)如果你需要它們,你需要對結果進行排序 – 2012-01-15 17:04:33