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

C++で2つのソートされた配列の相対的な補数を検索します


2つのソートされた配列arr1とarr2があり、サイズはそれぞれmとnであるとします。 2つの配列の相対的な補数を見つける必要があります。これは、arr1には存在するが、arr2には存在しないすべての要素を見つける必要があることを意味します。したがって、配列がA =[3、6、10、12、15]、B =[1、3、5、10、16]のような場合、結果は[6、12、15]

になります。

これを解決するために、set_difference関数を使用できます。問題は基本的にセット差操作なので。

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
   int first[] = {3, 6, 10, 12, 15};
   int second[] = {1, 3, 5, 10, 16};
   int n = sizeof(first) / sizeof(first[0]);
   vector<int> temp(5);
   vector<int>::iterator it, ls;
   sort(first, first + 5);
   sort(second, second + 5);
   cout << "First array :";
   for (int i = 0; i < n; i++)
      cout << " " << first[i];
   cout << endl;
   cout << "Second array :";
   for (int i = 0; i < n; i++)
      cout << " " << second[i];
   cout << endl;
   ls = set_difference(first, first + 5, second, second + 5, temp.begin());
   cout << "The result of relative complement ";
   for (it = temp.begin(); it < ls; ++it)
      cout << " " << *it;
   cout << endl;
}

出力

First array : 3 6 10 12 15
Second array : 1 3 5 10 16
The result of relative complement 6 12 15

  1. 多次元配列を使用して2つの行列を乗算するC++プログラム

    行列は、行と列の形式で配置された長方形の数値配列です。 マトリックスの例は次のとおりです。 以下に示すように、3*3マトリックスには3行3列があります- 8 6 3 7 1 9 5 1 9 多次元配列を使用して2つの行列を乗算するプログラムは次のとおりです。 例 #include<iostream> using namespace std; int main() {    int product[10][10], r1=2, c1=3, r2=3, c2=3, i, j, k;    int a[2][3] = { {2, 4, 1}

  2. 多次元配列を使用して2つの行列を追加するC++プログラム

    行列は、行と列の形式で配置された長方形の数値配列です。 マトリックスの例は次のとおりです。 以下に示すように、4*3マトリックスには4行3列があります- 3 5 1 7 1 9 3 9 4 1 6 7 多次元配列を使用して2つの行列を追加するプログラムは次のとおりです。 例 #include <iostream> using namespace std; int main() {    int r=2, c=4, sum[2][4], i, j;    int a[2][4] = {{1,5,9,4} , {3,2,8,3}}; &nb