C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++では最初の配列に存在し、2番目には存在しない要素を検索します


2つの配列AとBがあるとします。要素はほとんどありません。セットAには存在するが、セットBには存在しない要素を見つける必要があります。そのような状況を考え、AとBをセットと見なすと、これは基本的にセット分割操作です。 AとBのセットの差により、これらの要素が返されます。

#include<iostream>
#include<set>
#include<algorithm>
#include<vector>
using namespace std;
void setDiffResults(int A[], int B[], int An, int Bn) {
   sort(A, A + An);
   sort(B, B + Bn);
   vector<int> res(An);
   vector<int>::iterator it;
   vector<int>::iterator it_res = set_difference(A, A + An, B , B + Bn, res.begin());
   cout << "Elements are: ";
   for(it = res.begin(); it < it_res; ++it){
      cout << *it << " ";
   }
}
int main() {
   int A[] = {9, 4, 5, 3, 1, 7, 6};
   int B[] = {9, 3, 5};
   int An = 7, Bn = 3;
   setDiffResults(A, B, An, Bn);
}

出力

Elements are: 1 4 6 7

  1. C++で連続する要素のXORを使用して配列の要素を検索する

    n個の要素のリストを見つける必要があると考えてください。ただし、実際の配列の2つの連続する要素のXOR値があります。また、実際の最初の要素が示されています。したがって、配列要素がa、b、c、d、e、fの場合、指定された配列はa ^ b、b ^ c、c ^ d、d ^ e、およびe^fになります。 aという名前の最初の番号が与えられているので、すべての番号を見つけるのに役立ちます。実際の配列の2番目の要素を検索する場合は、b =a ^ arr [i]を実行する必要があり、2番目の要素c =b ^arr[1]などを実行する必要があります。 例 #include<iostream> u

  2. C++でab=cdを満たす配列内のすべてのペア(a、b)と(c、d)を検索します

    配列Aがあるとすると、その配列から、ab =cdとなるように2つのペア(a、b)と(c、d)を選択する必要があります。配列A=[3、4、7、1、2、9、8]とします。出力ペアは(4、2)と(1、8)です。これを解決するには、次の手順に従います- i:=0からn-1の場合、do for j:=i + 1 to n-1、do get product =arr [i] * arr [j] 製品がハッシュテーブルに存在しない場合、Hash [product]:=(i、j) 製品がハッシュテーブルに存在する場合は、前の要素と現在の要素を出力します。 例 #include <