#include <iostream> using namespace std; template <class T> class Unit{ T a[10]; T b[10]; T c[10]; T d[10]; T x; public: Unit(T p[10],T q[10],T t){ for(int i =0;i<10;i++){ c[i] = a[i] = p[i]; d[i] = b[i] = q[i]; } x=t; } int len1 = sizeof(a)/sizeof(a[0]); int len2 = sizeof(b)/sizeof(b[0]); int find(); int equal(); void sort(T xx[]); }; template <class T> void Unit<T>::sort(T xx[]){ for(int i=0;i<len1;i++){ for (int j=i+1;j<len2;j++){ if (xx[i]>xx[j]){ T temp = xx[i]; xx[i] = xx[j]; xx[j] = temp; } } } } template <class T> int Unit<T>::find() { int i; for(i=0;i<len1;i++){ if (c[i]==x){ return i+1; } } if(i==len1){ return -1; } } template <class T> int Unit<T>::equal() { int i,j,k=0; sort(a);sort(b); for (i=0,j=0;i<len1&&i<len2;i++,j++){ if (a[i]==b[j]){ k++; } } if(k==len1){ return 1; }else{ return -1; } } int main(){ int x1[10]={1,2,3,4,5,6,7,8,9,0}; int x2[10]={2,4,5,7,0,9,1,3,6,8}; int x3= 5; Unit<int> unit(x1,x2,x3); cout<<unit.find()<<endl; cout<<unit.equal()<<endl; return 0; }
输出:
5
1
Process finished with exit code 0