c++ - 如何在 C++ 中使用哈希函数找到两个数组的交集?

标签 c++ hash hashtable

我是散列的新手,不确定如何在 C++ 中执行此操作。在java中,我们有Hash的ContainsKey、put、get等函数。 C++中有类似的东西吗? 谢谢。

最佳答案

您可以从 std::set<> 开始,这是一棵平衡二叉树。最近的编译器还提供了 unordered_set<> ,它是一个哈希表,但不是 C++03 的一部分:它将成为 C++0x 的一部分。 boost 库还有一个哈希集实现。

对于 std::set<>,参见 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();

关于c++ - 如何在 C++ 中使用哈希函数找到两个数组的交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5268817/

相关文章:

c++ - 如何填充 QStandardItemModel

javascript - 在 Javascript 中复制哈希值

php - 数组插入时间跳跃

c++ - 需要帮助开始构建我自己的哈希表

c++ - 删除 vector 中的元素需要永远完成

c++ - 为什么这个数据流在第 26 个字节结束?

c++ - OpenGL 中的体积雾问题

arrays - 如何将 perl 哈希数组编码为未命名的 JSON 数组?

php - 对同一字段进行散列和加密会削弱它吗?

c - 如何释放被调用的指针而不从哈希表/链接列表中删除值?