朱金付第十二章编程

来源:互联网 发布:剑雨江湖数据晋级 编辑:程序博客网 时间:2024/05/23 19:06

#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