1
現在私が出力するこれらのアレイの交差をしようとしている長さC++ 0で長さの異なる複数のアレイの交差探し(N + M)複雑
int * arrs[5];
int arrs_length[5];
int arr0[] = {1, 5, 8};
int arr1[] = {1, 2, 3, 5, 7, 10, 11, 15};
int arr2[] = {1, 4, 5, 6};
int arr3[] = {1, 5, 9, 14, 16, 19};
int arr4[] = {1, 2, 4, 5, 6, 9, 9};
arrs[0] = arr0;
arrs_length[0] = sizeof(arr0)/sizeof(int);
arrs[1] = arr1;
arrs_length[1] = sizeof(arr1)/sizeof(int);
arrs[2] = arr2;
arrs_length[2] = sizeof(arr2)/sizeof(int);
arrs[3] = arr3;
arrs_length[3] = sizeof(arr3)/sizeof(int);
arrs[4] = arr4;
arrs_length[4] = sizeof(arr4)/sizeof(int);
を変えてアレイを複数注文しました。
いずれかの配列の値を使ってunordered_mapを作成し、count関数を使用してそれが存在するかどうかを確認することから始めます。私は1と5が並んでいないときに問題にぶつかりますが、ラインアップするとうまくいきます。
int intersect(int *arrs[], int arrs_length[], int *re_arr, int & re_size){
unordered_map <int,int> myMap;
int j=0;
for (int i=0; i<arrs_length[0]; i++){
myMap[arrs[0][i]];
}
どのようにして順序付けられていないマップを適切に検索し、複数の配列を一度に検索する方法を知ってもらえますか?
「n」と「m」とは何ですか? – alexeykuzmin0
[std :: set_intersection](http://en.cppreference.com/w/cpp/algorithm/set_intersection)が役に立ちます。 – Jarod42
@ alexeykuzmin0 nはすべての配列の合計長さです。 – Fishingwest