私は2つのベクトル/配列上で未定義の交差を実行する効率的なアルゴリズムを書く方法を考え出しましたが、運がありません。私は1つの大きな一意でない配列(一般的には50万から100万の値)と1つの相対的に小さい(おそらく5000値の最大)固有の配列で作業しています。ユニークでないC++のソートされていない交差アルゴリズム
ここでは、unordered_setsなどの手法を使用してさまざまな方法が提案されていますが、いずれかの配列が一意でない場合、これは機能しません。次に、両方の配列に共通の数値を含む出力ベクトルを持つ代わりに、出力ベクトルに大きな配列に対してこれらの共通の値のインデックスが含まれるようにしたいと思います。したがって、大きい方の配列に小さい方の配列の値の1つと等しい5つの位置がある場合は、それらの5つのインデックスのそれぞれが必要です。おそらく、Pythonのin1d関数に似たものでしょう。
誰もが考えている?ありがとう
非固有の側面については、 '{1,2,2,3} 'と{2,3}の共通点を明確にしてください。 – dasblinkenlight
{1,2,3}は、{2,3} – zach
によって交差された{1,2,2,3}の要素のインデックスになります。彼らは効果的にハッシュすることができますか? –