level 11
水月🌙江明
楼主
#include <iostream>
using namespace std;
template <class T>
class SeqList
{
private:
int Length;
int currentlength;
T* data
public:
SeqList(){currentlength=0;}
~SeqList(){delete[]data;}
int length() const{return Length;}
friend SeqList<T> operator +(const SeqList<T>& listA,const SeqList<T>& listB)
{
SeqList<T> tmp;
tmp.Length=listA.Length+listB.Length;
cout<<listA.data[1];
for(int i=0;i<listA.Length;i++)
{
tmp.add(listA.data[i]);
}
for(int j=0;j<listB.Length;j++)
{
tmp.add(listB.data[j]);
}
return tmp;
}
void operator =(/*const SeqList& listC,*/const SeqList<T>& listD)
{
/*listC.*/Length=listD.Length;
for(int i=0;i<listD.Length;i++)/* listC.*/data[i]=listD.data[i];
}
friend istream& operator >>(istream& input,const SeqList<T>& List)
{
input>>List.data[List.currentlength];
List.currentlength++;
return input;
}
void add(T elem);
void getlength(int size){Length=size;}
void push(int i){cin>>data[i];currentlength++;}
friend ostream& operator <<(ostream& output,const SeqList<T>& List)
{
for(int i=0;i<List.Length;i++)
{
output<<List.data[i]<<' ';
}
output<<endl;
return output;
}
};
template <class T>
void SeqList<T>::add(T elem)
{
data[currentlength]=elem;
currentlength++;
if (currentlength>Length){
cout<<"Over the range"<<endl;
currentlength--;
}
}
int main()
{
char typ[6];
int sizeA,sizeB;
cin>>typ>>sizeA>>sizeB;
if (typ[0]=='i')
{
SeqList<int> listA,listB,listC;
listA.getlength(sizeA);
listB.getlength(sizeB);
listC.getlength(sizeA+sizeB);
for(short i=0;i<sizeA;i++) listA.push(i);
for(short i=0;i<sizeB;i++) listB.push(i);
listC=listA+listB;
cout<<listC;
}
else if(typ[0]=='d')
{
SeqList<double> listD,listE,listF;
listD.getlength(sizeA);
listE.getlength(sizeB);
listF.getlength(sizeA+sizeB);
for(short i=0;i<sizeA;i++) listD.push(i);
for(short i=0;i<sizeB;i++) listE.push(i);
listF=listD+listE;
cout<<listF;
}
else if(typ[0]=='c')
{
SeqList<char> listG,listH,listI;
listG.getlength(sizeA);
listH.getlength(sizeB);
listI.getlength(sizeA+sizeB);
for(short i=0;i<sizeA;i++) listG.push(i);
for(short i=0;i<sizeB;i++) listH.push(i);
listI=listG+listH;
cout<<listI;
}
return 0;
}
2015年10月06日 05点10分
1
using namespace std;
template <class T>
class SeqList
{
private:
int Length;
int currentlength;
T* data
public:
SeqList(){currentlength=0;}
~SeqList(){delete[]data;}
int length() const{return Length;}
friend SeqList<T> operator +(const SeqList<T>& listA,const SeqList<T>& listB)
{
SeqList<T> tmp;
tmp.Length=listA.Length+listB.Length;
cout<<listA.data[1];
for(int i=0;i<listA.Length;i++)
{
tmp.add(listA.data[i]);
}
for(int j=0;j<listB.Length;j++)
{
tmp.add(listB.data[j]);
}
return tmp;
}
void operator =(/*const SeqList& listC,*/const SeqList<T>& listD)
{
/*listC.*/Length=listD.Length;
for(int i=0;i<listD.Length;i++)/* listC.*/data[i]=listD.data[i];
}
friend istream& operator >>(istream& input,const SeqList<T>& List)
{
input>>List.data[List.currentlength];
List.currentlength++;
return input;
}
void add(T elem);
void getlength(int size){Length=size;}
void push(int i){cin>>data[i];currentlength++;}
friend ostream& operator <<(ostream& output,const SeqList<T>& List)
{
for(int i=0;i<List.Length;i++)
{
output<<List.data[i]<<' ';
}
output<<endl;
return output;
}
};
template <class T>
void SeqList<T>::add(T elem)
{
data[currentlength]=elem;
currentlength++;
if (currentlength>Length){
cout<<"Over the range"<<endl;
currentlength--;
}
}
int main()
{
char typ[6];
int sizeA,sizeB;
cin>>typ>>sizeA>>sizeB;
if (typ[0]=='i')
{
SeqList<int> listA,listB,listC;
listA.getlength(sizeA);
listB.getlength(sizeB);
listC.getlength(sizeA+sizeB);
for(short i=0;i<sizeA;i++) listA.push(i);
for(short i=0;i<sizeB;i++) listB.push(i);
listC=listA+listB;
cout<<listC;
}
else if(typ[0]=='d')
{
SeqList<double> listD,listE,listF;
listD.getlength(sizeA);
listE.getlength(sizeB);
listF.getlength(sizeA+sizeB);
for(short i=0;i<sizeA;i++) listD.push(i);
for(short i=0;i<sizeB;i++) listE.push(i);
listF=listD+listE;
cout<<listF;
}
else if(typ[0]=='c')
{
SeqList<char> listG,listH,listI;
listG.getlength(sizeA);
listH.getlength(sizeB);
listI.getlength(sizeA+sizeB);
for(short i=0;i<sizeA;i++) listG.push(i);
for(short i=0;i<sizeB;i++) listH.push(i);
listI=listG+listH;
cout<<listI;
}
return 0;
}