分类：电脑/网络-程序设计-C/C++
问题：C＋＋模板类的应用问题清大出版的《数据结构
清大的《数据结构-面向对象方法与C++描述》书中关于顺序表类的定义有这样一段代码:#include<iostream.h>#include<string.h>#include<fstream.h>template<classType>classSeqList{//顺序表的类定义 (intMaxSide=defaultSize);//构造函数~SeqList(){delete[]data;};//析构函数intLength()const{returnlast+1;}//计算表的长度intFind(Typ清大的《数据结构-面向对象方法与C++描述》书中关于顺序表类的定义有这样一段代码:#include<iostream.h>#include<string.h>#include<fstream.h>template<classType>classSeqList{//顺序表的类定义 (intMaxSide=defaultSize);//构造函数~SeqList(){delete[]data;};//析构函数intLength()const{returnlast+1;}//计算表的长度intFind(Type&x)const;//定位函数:找x在表中的位置intIsIn(Type&x);//判断x是否在表中intInsert(Type&x,inti);//插入x在表中第i个位置处intRemove(Type&x);//删除xintNext(Type&x);//寻找x的后续intPrior(Type&x);//寻找x的前驱intIsEmpty(){returnlast==-1;}//判断顺序表空否。空返回1;否则0intIsFull(){returnlast==MaxSize-1;}//判断顺序表满否。满返回1;否则0TypeGet(inti){returni<0||i>last?}//取第i个元素 *data;//顺序表的存放数组intMaxSize;//顺序表的最大可容纳项数intlast;//顺序表当前已存表项的最后位置};template<classType>SeqList<Type>::SeqList(intsz){//构造函数,通过指定参数sz定义数组的长度if(sz>0){MaxSize=sz;last=-1;//顺序表的长度,置表的实际长度为空data=newType[MaxSize];//创建顺序表组}}template<classType>intSeqList<Type>::Find(Type&x)const{//定位:找x在表中的位置,若查找成功,函数返回表项的位置,否则返回-1;inti=0;while(i<=last&&data!=x)i++;//顺序查找if(i>last)return-1;//查找失败elsereturni;//查找成功}template<classType>intSeqList<Type>::IsIn(Type&x){//判断x是否在表中inti=0,found=0;while(i<=last&&!found)//顺序查找{if(data!=x)i++;elsefound=1;//查找成功}returnfound;}template<classType>intSeqList<Type>::Insert(Type&x,inti){//插入x在表中第i个位置处。函数返回插入是否成功的信息。若为0则插入不成功。if(i<0||i>last+1||last==MaxSize-1)return0;//插入位置不合理,不能插入。else{last++;//表长度加1for(intj=last;j>i;j--)data[j]=data[j-1];//依次后移data=x;return1;//插入}}template<classType>intSeqList<Type>::Remove(Type&x){//删除xinti=Find(x);//在表中查找xif(i>=0){//x在表中存在last--;//表长度减1for(intj=i;j<=last;j++)data[j]=data[j+1];//依次前移return1;}return0;//x在表中不存在,不能删除}template<classType>intSeqList<Type>::Next(Type&x){//寻找x的后继数据inti=Find(x);if(i>=0&&i<last)returni+1;//x的后继存在elsereturn-1;//x不在表中或x的后继不存在}template<classType>intSeqList<Type>::Prior(Type&x){//寻找x的前驱inti=Find(x);if(i>0&&i<=last)returni-1;//x的前驱的位置elsereturn-1;}如果要在主程序中,通过这个类来定义一个int型的数组,并向其中输入,应该怎么操作呢?
回答：SeqList<int> s_int(100);//s_int为定义的长度100的int数组
int x=10;
s_int.Insert(10,1);//在1处插入x的值