有沒有辦法從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. Python,gae,ndb - 獲取所有密鑰
- 4. Sharepoint SiteUserInfoList獲取所有密鑰和值
- 5. 獲取play.api.libs.json.JsValue的所有密鑰
- 6. 如何獲得列表中所有密鑰的密鑰列表?
- 7. Java:從編碼密鑰獲取密鑰
- 8. 獲取所有redis數據庫中的所有密鑰和值?
- 9. 如何從ContentValues獲取密鑰?
- 10. 如何從$ Keys獲取密鑰
- 11. 如何從Firebase獲取密鑰?
- 12. 如何從Firebase獲取項目密鑰
- 13. 如何從以下json獲取密鑰
- 14. 如何從Yubico設備獲取密鑰
- 15. 如何從TDictionary獲取密鑰?
- 16. 如何從NSDictionary獲取密鑰對象?
- 17. 如何從密鑰中的公鑰獲取密碼
- 18. 如何使用crediscache獲取所有redis密鑰
- 19. node-hashtable - 如何獲取所有密鑰的集合?
- 20. Prestodb map(varchar,varchar):如何獲取所有可能的密鑰?
- 21. 從Object.create獲取密鑰
- 22. 從JTextArea獲取密鑰
- 23. Android從preferencess.xml獲取密鑰
- 24. 從IgniteCache獲取密鑰
- 25. 從密鑰獲取字符
- 26. 從Multiindex中獲取密鑰?
- 27. 從Pandas中的GroupBy對象獲取所有密鑰
- 28. indexeddb從對象存儲獲取所有密鑰
- 29. 如何從字符串獲取PKCS8 RSA私鑰/從XML獲取RSA密鑰對
- 30. 如何從Apache Ignite C++中的緩存中獲取所有密鑰
注意,在所有提出的解決方案的關鍵是無序的(這是罰款,爲什麼訂單,如果沒有必要?)如果你需要它們,你需要對結果進行排序 – 2012-01-15 17:04:33