/或修改为int mainOG1int i1[l ={3, 2, 5, 0, -1, 7};double d1[l ={3.3, 2.1, 0.3, 1.5, 10.6, 5.2];*cl="xjtu";charint lenl=sizeof(il)/sizeof(int):int len2=sizeof(d1)/sizeof(double):int len3=sizeof(c1)/sizeof(char);cout <<seq search(il, 15, len1)<< endl:cout <<seq_search(d1, 3.3,len2)<< endl:cout <<seq_search(cl, 'j,len3)<< endl;return O:115
15 //或修改为 int main() { int i1[] ={3, 2, 5, 0, -1, 7}; double d1[] ={3.3, 2.1, 0.3, 1.5, 10.6, 5.2}; char *c1="xjtu"; int len1=sizeof(i1)/sizeof(int); int len2=sizeof(d1)/sizeof(double); int len3=sizeof(c1)/sizeof(char); cout <<seq_search(i1, 15, len1)<< endl; cout <<seq_search(d1, 3.3,len2)<< endl; cout <<seq_search(c1, 'j',len3)<< endl; return 0; }
类模板二、1、类模板类是对问题空间的抽象,类模板是对类的抽象更高层次的抽象,通过使用不同的实参生成不同的类。2、类模板的定义格式:template < class <类型参数>>class <类名>1:3、木模板类对象定义方法:<类名><<类型实参>><对象>;注:类型实参是实际类型名,为任何已存在的数据类型。16
二、类模板 16 1、类模板 类是对问题空间的抽象,类模板是对类的抽象。 更高层次的抽象,通过使用不同的实参生成不 同的类。 2、类模板的定义格式: template < class <类型参数> > class <类名> { . }; 3、模板类对象定义方法: <类名> < <类型实参> > <对象>; 注:类型实参是实际类型名,为任何已存在的数据类 型
类模板中的成员函数为函数模板,外部定义4.(内部声明)格式如下:template <<模板参数表>><类型><类名><<类型参数>>:<函数名>(<参数表>)17
17 4、类模板中的成员函数为函数模板,外部定义 (内部声明)格式如下: template < <模板参数表> > <类型> <类名> < <类型参数> > :: <函数名> (<参数表>) { . }
5、类模板中有多个类型参数时,则(1)成员函数外部定义时所有参数类型必须在类名后列出;(2)定义对象时,所有参数必须给出实参类型:例 : template < class T1,class T2 >class <类名>[7;成员函数定义:template < class T1,class T2,int n><类型><类名><T1,T2><函数名>3(<参数表>)对象定义:<类名>< int,double>><对象>;18
18 5、类模板中有多个类型参数时,则 (1)成员函数外部定义时所有参数类型必须在类名后一一 列出; (2)定义对象时,所有参数必须给出实参类型: 例:template < class T1,class T2 > class <类名>{ . }; 成员函数定义: template < class T1,class T2,int n> <类型> <类名> < T1,T2> :: <函数名> (<参数表>) { . } 对象定义: <类名> < int,double> <对象>;
例13-2定义一个任意类类型AnyTypetemplate < class T >class AnyType( TX, y,public:AnyType(T a, T b): x(a), y(b)0T GetXO(return x;}T GetYO :7:19
例13-2 定义一个任意类类型AnyType 19 template < class T > class AnyType { T x, y; public: AnyType(T a, T b): x(a), y(b){} T GetX(){return x;} T GetY(); };