有人可以举例说明使用哈希表和函数查找数组重复项。
我在C ++中寻找一些例子。 我得到的代码都是Java。
答案 0 :(得分:1)
一种解决方案是将哈希表放入数组的元素(作为键)及其出现次数(作为值)。 然后复制哈希表的关键值大于1的键。
#include <string>
#include <vector>
#include <map>
#include <iostream>
#include <algorithm>
int main(int argc, char* argv[]) {
std::vector<int> vec{1,1,2,3,1,4,5};
std::map<int, int> m;
// We copy the element of the vector into the hash table
std::for_each(vec.begin(), vec.end(), [&m](auto & elt){ m[elt] += 1; });
std::vector<int> res;
// We select the key where the value is > 1
std::for_each(m.begin(), m.end(), [&res](auto & elt) { if(elt.second > 1) res.push_back(elt.first); });
}