2017-05-22 65 views
-3

有人可以舉一個使用哈希表和函數查找數組重複項的示例。在C++中使用哈希表的數組中使用重複元素

我在找C++中的一些例子。 我得到的代碼都是用Java編寫的。

+0

發現陣列複製在獲得數組中的重複的位置的關鍵? – nefas

+0

我想獲得數組重複元素 – Sijith

+1

請顯示你自己的努力。這不是一個代碼寫入服務。 –

回答

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); }); 
}