版权声明:如需转载,请联系原作者授权... https://blog.csdn.net/Superman___007/article/details/82313209
模板类实现数组 .
#include<iostream>
using namespace std;
//数组:是一块连续空间
template<typename T>
class Array
{
public:
//声明构造器
Array();
Array(T*,int);
T at(int );//返回指定位置的元素
unsigned short size();
void insert(int,T);
private:
T buf[100];
int ilen;//存储元素的个数
};
template<typename T>
Array<T>::Array()
{
ilen=0;
}
template<typename T>
Array<T>::Array(T buf[],int len)
{
int i=0;
for(i=0;i<len;i++)
this->buf[i]=buf[i];
this->ilen=len;
}
template<typename T>
T Array<T>::at(int index)
{
return this->buf[index];
}
template<typename T>
unsigned short Array<T>::size( )
{
return this->ilen;
}
//插入第loc位置之前:
//loc从1开始
template<typename T>
void Array<T>::insert(int loc,T num)
{
//为满
if(this->ilen==100)
return;
//先位移 loc=3
int i=this->ilen-1;
while( i>=0 && i>=loc-1)
{
this->buf[i+1]=this->buf[i];
i--;
}
//插入
this->buf[i+1]=num;
this->ilen++;
}
int main()
{
//实例化一个泛型:
float buf[10]={1.1,2.2,3.3,4.5,5.6,6.7};
Array<float> b(buf,6);
//插入
b.insert(3,7.9);
//遍历
int i=0;
while(i<b.size())
cout<<b.at(i++)<<" ";
cout<<endl;
return 0;
}