我是新来散列和不知道如何在C++中做到这一点。在java中,我们有像ContainsKey这样的函数,put,hash等等。 C++中有类似的东西吗? 谢谢。如何在C++中使用哈希函数找到两个数组的交集?
回答
您可以从std::set<>
开始,这是一个平衡的二叉树。最近的编译器还提供unordered_set<>
,这是一个散列表,但不是C++ 03的一部分:它将成为C++ 0x的一部分。 boost库也有一个哈希集实现。
对于标准::设置<>见http://www.cplusplus.com/reference/stl/set/
例如
std::set<int> s;
for (int i = 0; i < first_vector.size(); ++i)
s.insert(first_vector[i]);
for (int i = 0; i < second_vector.size(); ++i)
if (s.find(second_vector[i]) != s.end())
do_something();
使用std::map
,你可以做类似的事情HashMap
在Java
'std :: map'不是散列表。此外,十字路口是集合上的操作,而不是字典。 – 2011-03-11 04:08:31
@Ben我同意std :: map不是散列表。但交叉点仍然可以在字典上执行,因为字典中的关键字是唯一标识的。纠正我,如果它是错误的。 – Richard 2011-03-11 04:33:59
是的,你可以在一组字典键上做一个十字路口,只是忽略这些值......但为什么要额外支付你不打算使用的值呢? – 2011-03-11 04:54:22
你可能想的unordered_set
类。它是TR1的一部分,并在C++ 0x中标准化,较早的编译器可以在boost库中找到实现。
谢谢,我会读一读。 – Ava 2011-03-11 17:47:00
- 1. 如何将两个哈希合并到数组的哈希中?
- 2. 合并两个数组到哈希
- 3. 如何将哈希数组推送到哈希数组?
- 4. 如何在Perl中将两个数组分配给哈希?
- 5. 如何使用reduce函数在javascript函数式编程中查找一组数组之间的交集/并集?
- 6. 如何分组这个哈希数组?
- 7. 在c中找到两个sum函数#
- 8. 在Perl中使用哈希和数组
- 9. 如何在函数中使用JavaScript哈希作为参数?
- 10. 如何在Ruby中找到n个数组的交集?
- 11. 找到数组的交集
- 12. 查找哈希数组中的元素
- 13. Perl的哈希数组 - 引用数组中的每个哈希值?
- 14. 在哈希数组
- 15. PHP关联数组的哈希函数
- 16. C#中的DJBX33X哈希函数#
- 17. 使用ruby on rails访问哈希数组中的哈希
- 18. 如何反转这个哈希函数?
- 19. 如何从Perl中的哈希数组创建哈希散列?
- 20. 如何访问哈希数组中的哈希值?
- 21. CRC16哈希函数,用于计算来自两个输入的哈希值
- 22. Excel找到没有VBA的两个数组的交集
- 23. 如何在arduino中使用哈希函数
- 24. 在C中使用哈希#
- 25. 无法找到两个数组的交集
- 26. 如何在C#中实现sdbm哈希函数?
- 27. 如何在C++中实现泛型哈希函数
- 28. 在Python中利用哈希函数
- 29. 如何实现动态哈希表的哈希函数?
- 30. PHP哈希函数
交集是集合上的操作,而不是字典。 – 2011-03-11 04:09:34
@Ben:是的 - 意识到当我去提供一个示例实现... :-) – 2011-03-11 04:11:26
谢谢,我会研究它。 – Ava 2011-03-11 17:47:16