2017-05-22 9 views
-3

ハッシュテーブルと関数を使って配列の重複を見つける例がありますか?C++のハッシュテーブルを使った配列の重複要素

私はC++でいくつかの例を探しています。 私が得ているコードはすべてJavaで書かれています。

+0

は、アレイ内の重複の位置を得ることのように、重複配列を見つけることであるハッシュテーブルのキーをコピー? – nefas

+0

配列を取得したい複製要素 – Sijith

+1

あなた自身の努力を示してください。これはコード作成サービスではありません。 –

答えて

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); }); 
} 
関連する問題