C++——计算两组整数的交集
#include <iostream>
using namespace std;
const int Max = 10;
class Intersection
{
public:
Intersection(){}
Intersection(int a[], int size)
{
if (size >= Max)
end = Max - 1;
else end = size - 1;
for (int i = 0; i <= end; i++)
element[i] = a[i];
}
bool IsMemberOf(int a)
{
for (int i = 0; i <= end; i++)
if (element[i] == a)
return true;
return false;
}
int GetEnd()
{
return end;
}
int GetElement(int i)
{
return element[i];
}
Intersection calculation(Intersection& set);
void Print()
{
for (int i = 0; i <= end; i++)
cout << element[i] << ' ';
cout << endl;
}
private:
int element[Max];
int end;
};
Intersection Intersection::calculation(Intersection &p)
{
int a[Max], size = 0;
for (int i = 0; i <=p.GetEnd(); i++)
if (IsMemberOf(p.GetElement(i)))
a[size++] = p.GetElement(i);
return Intersection(a, size);
}
int main()
{
int a[] = { 1,2,3,4,5,6 };
int b[] = { 1,2,3,4,5,6,7,8 };
Intersection array1(a, 6), array2(b, 8), array3;
array3 = array2.calculation(array1);
cout << endl << "计算结果:" << endl;
cout << "set1: "; array1.Print();
cout << "set2: "; array2.Print();
cout << "set3: "; array3.Print();
return 0;
}
每天都要开心~么么哒